Adding compatibility for marathon 1.5
This commit is contained in:
parent
461ebf6d88
commit
04d8b5d483
35 changed files with 2257 additions and 63 deletions
75
vendor/github.com/gambol99/go-marathon/pod_scheduling.go
generated
vendored
Normal file
75
vendor/github.com/gambol99/go-marathon/pod_scheduling.go
generated
vendored
Normal file
|
@ -0,0 +1,75 @@
|
|||
/*
|
||||
Copyright 2017 The go-marathon Authors All rights reserved.
|
||||
|
||||
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 marathon
|
||||
|
||||
// PodBackoff describes the backoff for re-run attempts of a pod
|
||||
type PodBackoff struct {
|
||||
Backoff *int `json:"backoff,omitempty"`
|
||||
BackoffFactor *float64 `json:"backoffFactor,omitempty"`
|
||||
MaxLaunchDelay *int `json:"maxLaunchDelay,omitempty"`
|
||||
}
|
||||
|
||||
// PodUpgrade describes the policy for upgrading a pod in-place
|
||||
type PodUpgrade struct {
|
||||
MinimumHealthCapacity *float64 `json:"minimumHealthCapacity,omitempty"`
|
||||
MaximumOverCapacity *float64 `json:"maximumOverCapacity,omitempty"`
|
||||
}
|
||||
|
||||
// PodPlacement supports constraining which hosts a pod is placed on
|
||||
type PodPlacement struct {
|
||||
Constraints *[]Constraint `json:"constraints"`
|
||||
AcceptedResourceRoles []string `json:"acceptedResourceRoles,omitempty"`
|
||||
}
|
||||
|
||||
// PodSchedulingPolicy is the overarching pod scheduling policy
|
||||
type PodSchedulingPolicy struct {
|
||||
Backoff *PodBackoff `json:"backoff,omitempty"`
|
||||
Upgrade *PodUpgrade `json:"upgrade,omitempty"`
|
||||
Placement *PodPlacement `json:"placement,omitempty"`
|
||||
}
|
||||
|
||||
// Constraint describes the constraint for pod placement
|
||||
type Constraint struct {
|
||||
FieldName string `json:"fieldName"`
|
||||
Operator string `json:"operator"`
|
||||
Value string `json:"value,omitempty"`
|
||||
}
|
||||
|
||||
// NewPodPlacement creates an empty PodPlacement
|
||||
func NewPodPlacement() *PodPlacement {
|
||||
return &PodPlacement{
|
||||
Constraints: &[]Constraint{},
|
||||
AcceptedResourceRoles: []string{},
|
||||
}
|
||||
}
|
||||
|
||||
// AddConstraint adds a new constraint
|
||||
// constraints: the constraint definition, one constraint per array element
|
||||
func (r *PodPlacement) AddConstraint(constraint Constraint) *PodPlacement {
|
||||
c := *r.Constraints
|
||||
c = append(c, constraint)
|
||||
r.Constraints = &c
|
||||
|
||||
return r
|
||||
}
|
||||
|
||||
// NewPodSchedulingPolicy creates an empty PodSchedulingPolicy
|
||||
func NewPodSchedulingPolicy() *PodSchedulingPolicy {
|
||||
return &PodSchedulingPolicy{
|
||||
Placement: NewPodPlacement(),
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue