VMware vSphere Integrated Containers provider (#206)

* Add Virtual Kubelet provider for VIC

Initial virtual kubelet provider for VMware VIC.  This provider currently
handles creating and starting of a pod VM via the VIC portlayer and persona
server.  Image store handling via the VIC persona server.  This provider
currently requires the feature/wolfpack branch of VIC.

* Added pod stop and delete.  Also added node capacity.

Added the ability to stop and delete pod VMs via VIC.  Also retrieve
node capacity information from the VCH.

* Cleanup and readme file

Some file clean up and added a Readme.md markdown file for the VIC
provider.

* Cleaned up errors, added function comments, moved operation code

1. Cleaned up error handling.  Set standard for creating errors.
2. Added method prototype comments for all interface functions.
3. Moved PodCreator, PodStarter, PodStopper, and PodDeleter to a new folder.

* Add mocking code and unit tests for podcache, podcreator, and podstarter

Used the unit test framework used in VIC to handle assertions in the provider's
unit test.  Mocking code generated using OSS project mockery, which is compatible
with the testify assertion framework.

* Vendored packages for the VIC provider

Requires feature/wolfpack branch of VIC and a few specific commit sha of
projects used within VIC.

* Implementation of POD Stopper and Deleter unit tests (#4)

* Updated files for initial PR
This commit is contained in:
Loc Nguyen
2018-06-04 15:41:32 -07:00
committed by Ria Bhatia
parent 98a111e8b7
commit 513cebe7b7
6296 changed files with 1123685 additions and 8 deletions

View File

@@ -0,0 +1,43 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: allOf analysis
paths:
"/some/where/{id}":
parameters:
- name: id
in: path
type: integer
format: int32
- name: bodyId
in: body
schema:
type: object
get:
parameters:
- name: limit
in: query
type: integer
format: int32
required: false
- name: body
in: body
schema:
type: object
responses:
default:
schema:
type: object
200:
schema:
type: object
definitions:
tag:
type: object
properties:
id:
type: integer
format: int64
value:
type: string

View File

@@ -0,0 +1,86 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: Definition analysis
parameters:
someParam:
name: someParam
in: body
schema:
type: object
responses:
someResponse:
schema:
type: object
paths:
"/some/where/{id}":
parameters:
- name: id
in: path
type: integer
format: int32
- name: bodyId
in: body
schema:
type: object
get:
parameters:
- name: limit
in: query
type: integer
format: int32
required: false
- name: body
in: body
schema:
type: object
responses:
default:
schema:
type: object
200:
schema:
type: object
definitions:
tag:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
definitions:
category:
type: object
properties:
id:
type: integer
format: int32
value:
type: string
withAdditionalProps:
type: object
additionalProperties:
type: boolean
withAdditionalItems:
type: array
items:
- type: string
- type: bool
additionalItems:
type: integer
format: int32
withNot:
type: object
not:
$ref: "#/definitions/tag"
withAnyOf:
anyOf:
- type: object
- type: string
withAllOf:
allOf:
- type: object
- type: string

View File

@@ -0,0 +1,50 @@
definitions:
named:
type: string
tag:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
audit:
$ref: "#/definitions/record"
record:
type: object
properties:
createdAt:
type: string
format: date-time
nestedThing:
type: object
properties:
record:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
- allOf:
- type: string
format: date
- type: object
additionalProperties:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
properties:
value:
type: string
name:
$ref: "definitions2.yml#/coordinate"

View File

@@ -0,0 +1,9 @@
coordinate:
type: object
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date-time

View File

@@ -0,0 +1,13 @@
error:
type: object
required:
- id
- message
properties:
id:
type: integer
format: int64
readOnly: true
message:
type: string
readOnly: true

View File

@@ -0,0 +1,35 @@
bodyParam:
name: body
in: body
schema:
type: object
properties:
record:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
- allOf:
- type: string
format: date
- type: object
properties:
id:
type: integer
format: int64
value:
type: string
name:
type: object
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date-time

View File

@@ -0,0 +1,32 @@
genericResponse:
type: object
properties:
record:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
- allOf:
- type: string
format: date
- type: object
properties:
id:
type: integer
format: int64
value:
type: string
name:
type: object
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date-time

View File

@@ -0,0 +1,12 @@
parameters:
idParam:
name: id
in: path
type: integer
format: int32
limitParam:
name: limit
in: query
type: integer
format: int32
required: false

View File

@@ -0,0 +1,9 @@
get:
operationId: modelOp
summary: many model variations
description: Used to see if a codegen can render all the possible parameter variations for a header param
tags:
- testcgen
responses:
default:
description: Generic Out

View File

@@ -0,0 +1,4 @@
responses:
notFound:
schema:
$ref: "errors.yml#/error"

View File

@@ -0,0 +1,95 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: reference analysis
parameters:
someParam:
name: someParam
in: body
schema:
$ref: "external/definitions.yml#/definitions/record"
responses:
someResponse:
schema:
$ref: "external/definitions.yml#/definitions/record"
paths:
"/some/where/{id}":
parameters:
- $ref: "external/parameters.yml#/parameters/idParam"
- name: bodyId
in: body
schema:
$ref: "external/definitions.yml#/definitions/record"
get:
parameters:
- $ref: "external/parameters.yml#/parameters/limitParam"
- name: other
in: query
type: array
items:
$ref: "external/definitions.yml#/definitions/named"
- name: body
in: body
schema:
$ref: "external/definitions.yml#/definitions/record"
responses:
default:
schema:
$ref: "external/definitions.yml#/definitions/record"
404:
$ref: "external/responses.yml#/responses/notFound"
200:
schema:
$ref: "external/definitions.yml#/definitions/tag"
"/other/place":
$ref: "external/pathItem.yml"
definitions:
namedAgain:
$ref: "external/definitions.yml#/definitions/named"
datedTag:
allOf:
- type: string
format: date
- $ref: "external/definitions.yml#/definitions/tag"
records:
type: array
items:
- $ref: "external/definitions.yml#/definitions/record"
datedRecords:
type: array
items:
- type: string
format: date-time
- $ref: "external/definitions.yml#/definitions/record"
datedTaggedRecords:
type: array
items:
- type: string
format: date-time
- $ref: "external/definitions.yml#/definitions/record"
additionalItems:
$ref: "external/definitions.yml#/definitions/tag"
otherRecords:
type: array
items:
$ref: "external/definitions.yml#/definitions/record"
tags:
type: object
additionalProperties:
$ref: "external/definitions.yml#/definitions/tag"
namedThing:
type: object
properties:
name:
$ref: "external/definitions.yml#/definitions/named"

View File

@@ -0,0 +1,85 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: reference analysis
parameters:
someParam:
name: some
in: query
type: string
responses:
notFound:
description: "Not Found"
schema:
$ref: "external/errors.yml#/error"
paths:
"/some/where/{id}":
parameters:
- $ref: "external/parameters.yml#/parameters/idParam"
get:
parameters:
- $ref: "external/parameters.yml#/parameters/limitParam"
- $ref: "#/parameters/someParam"
- name: other
in: query
type: string
- $ref: "external/nestedParams.yml#/bodyParam"
responses:
default:
$ref: "external/nestedResponses.yml#/genericResponse"
404:
$ref: "#/responses/notFound"
200:
description: "RecordHolder"
schema:
type: object
properties:
record:
$ref: "external/definitions.yml#/definitions/nestedThing"
"/other/place":
$ref: "external/pathItem.yml"
definitions:
namedAgain:
$ref: "external/definitions.yml#/definitions/named"
datedTag:
allOf:
- type: string
format: date
- $ref: "external/definitions.yml#/definitions/tag"
records:
type: array
items:
- $ref: "external/definitions.yml#/definitions/record"
datedRecords:
type: array
items:
- type: string
format: date-time
- $ref: "external/definitions.yml#/definitions/record"
otherRecords:
type: array
items:
$ref: "external/definitions.yml#/definitions/record"
tags:
type: object
additionalProperties:
$ref: "external/definitions.yml#/definitions/tag"
namedThing:
type: object
properties:
name:
$ref: "external/definitions.yml#/definitions/named"
namedAgain:
$ref: "#/definitions/namedAgain"

View File

@@ -0,0 +1,187 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: reference analysis
parameters:
someParam:
name: someParam
in: body
schema:
type: object
properties:
createdAt:
type: string
format: date-time
responses:
someResponse:
schema:
type: object
properties:
createdAt:
type: string
format: date-time
paths:
"/some/where/{id}":
parameters:
- name: id
in: path
type: integer
format: int32
- name: bodyId
in: body
schema:
type: object
properties:
createdAt:
type: string
format: date-time
post:
responses:
default:
description: all good
get:
parameters:
- name: limit
in: query
type: integer
format: int32
required: false
- name: other
in: query
type: array
items:
type: object
properties:
id:
type: integer
format: int64
- name: body
in: body
schema:
type: object
properties:
createdAt:
type: string
format: date-time
responses:
default:
schema:
type: object
properties:
createdAt:
type: string
format: date-time
404:
schema:
$ref: "errors.yml#/error"
200:
schema:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
"/other/place":
$ref: "external/pathItem.yml"
definitions:
namedAgain:
type: object
properties:
id:
type: integer
format: int64
datedTag:
allOf:
- type: string
format: date
- type: object
properties:
id:
type: integer
format: int64
value:
type: string
records:
type: array
items:
- type: object
properties:
createdAt:
type: string
format: date-time
datedRecords:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
datedTaggedRecords:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
additionalItems:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
otherRecords:
type: array
items:
type: object
properties:
createdAt:
type: string
format: date-time
tags:
type: object
additionalProperties:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
namedThing:
type: object
properties:
name:
type: object
properties:
id:
type: integer
format: int64
# depth first should have this at the bottom, it's just a very long name
pneumonoultramicroscopicsilicovolcanoconiosisAntidisestablishmentarianism:
type: object
properties:
floccinaucinihilipilificationCreatedAt:
type: integer
format: int64

View File

@@ -0,0 +1,298 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: reference analysis
parameters:
someParam:
name: someParam
in: body
schema:
type: object
properties:
createdAt:
type: string
format: date-time
responses:
someResponse:
schema:
type: object
properties:
createdAt:
type: string
format: date-time
paths:
"/some/where/{id}":
parameters:
- name: id
in: path
type: integer
format: int32
- name: bodyId
in: body
schema:
type: array
items:
type: object
properties:
createdAt:
type: string
format: date-time
post:
responses:
default:
description: all good
get:
parameters:
- name: limit
in: query
type: integer
format: int32
required: false
- name: other
in: query
type: array
items:
type: object
properties:
id:
type: integer
format: int64
- name: body
in: body
schema:
type: object
properties:
record:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
- allOf:
- type: string
format: date
- type: object
properties:
id:
type: integer
format: int64
value:
type: string
name:
type: object
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date-time
responses:
default:
schema:
type: object
properties:
record:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
- allOf:
- type: string
format: date
- type: object
properties:
id:
type: integer
format: int64
value:
type: string
name:
type: object
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date-time
404:
schema:
$ref: "errors.yml#/error"
200:
schema:
type: object
properties:
record:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
- allOf:
- type: string
format: date
- type: object
properties:
id:
type: integer
format: int64
value:
type: string
name:
type: object
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date-time
"/other/place":
$ref: "external/pathItem.yml"
definitions:
namedAgain:
type: object
properties:
id:
type: integer
format: int64
datedTag:
allOf:
- type: string
format: date
- type: object
properties:
id:
type: integer
format: int64
value:
type: string
records:
type: array
items:
- type: object
properties:
createdAt:
type: string
format: date-time
datedRecords:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
datedTaggedRecords:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
additionalItems:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
otherRecords:
type: array
items:
type: object
properties:
createdAt:
type: string
format: date-time
tags:
type: object
additionalProperties:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
namedThing:
type: object
properties:
name:
type: object
properties:
id:
type: integer
format: int64
nestedThing:
type: object
properties:
record:
type: array
items:
- type: string
format: date-time
- type: object
properties:
createdAt:
type: string
format: date-time
- allOf:
- type: string
format: date
- type: object
additionalProperties:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
properties:
id:
type: integer
format: int64
value:
type: string
name:
type: object
properties:
id:
type: integer
format: int64
createdAt:
type: string
format: date-time

View File

@@ -0,0 +1,124 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: reference analysis
parameters:
idParam:
name: id
in: path
type: string
pattern: 'a[A-Za-Z0-9]+'
responses:
notFound:
headers:
ContentLength:
type: string
pattern: '[0-9]+'
schema:
$ref: "#/definitions/error"
paths:
"/some/where/{id}":
parameters:
- $ref: "#/parameters/idParam"
- name: name
in: query
pattern: 'b[A-Za-z0-9]+'
- name: bodyId
in: body
schema:
type: object
get:
parameters:
- name: filter
in: query
type: string
pattern: "[abc][0-9]+"
- name: other
in: query
type: array
items:
type: string
pattern: 'c[A-Za-z0-9]+'
- name: body
in: body
schema:
type: object
responses:
default:
schema:
type: object
404:
$ref: "#/responses/notFound"
200:
headers:
X-Request-Id:
type: string
pattern: 'd[A-Za-z0-9]+'
schema:
$ref: "#/definitions/tag"
"/other/place":
post:
parameters:
- name: body
in: body
schema:
type: object
properties:
value:
type: string
pattern: 'e[A-Za-z0-9]+'
responses:
default:
headers:
Via:
type: array
items:
type: string
pattern: '[A-Za-z]+'
200:
schema:
type: object
properties:
data:
type: string
pattern: "[0-9]+[abd]"
definitions:
named:
type: string
pattern: 'f[A-Za-z0-9]+'
tag:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
pattern: 'g[A-Za-z0-9]+'
audit:
$ref: "#/definitions/record"
record:
type: object
properties:
createdAt:
type: string
format: date-time
error:
type: object
required:
- id
- message
properties:
id:
type: integer
format: int64
readOnly: true
message:
type: string
readOnly: true

View File

@@ -0,0 +1,89 @@
---
swagger: "2.0"
info:
version: "0.1.0"
title: reference analysis
parameters:
idParam:
name: id
in: path
type: integer
format: int32
limitParam:
name: limit
in: query
type: integer
format: int32
required: false
responses:
notFound:
schema:
$ref: "#/definitions/error"
paths:
"/some/where/{id}":
parameters:
- $ref: "#/parameters/idParam"
- name: bodyId
in: body
schema:
type: object
get:
parameters:
- $ref: "#/parameters/limitParam"
- name: other
in: query
type: array
items:
$ref: "#/definitions/named"
- name: body
in: body
schema:
type: object
responses:
default:
schema:
type: object
404:
$ref: "#/responses/notFound"
200:
schema:
$ref: "#/definitions/tag"
"/other/place":
$ref: "#/x-shared-path/getItems"
definitions:
named:
type: string
tag:
type: object
properties:
id:
type: integer
format: int64
value:
type: string
audit:
$ref: "#/definitions/record"
record:
type: object
properties:
createdAt:
type: string
format: date-time
error:
type: object
required:
- id
- message
properties:
id:
type: integer
format: int64
readOnly: true
message:
type: string
readOnly: true