mirror of https://github.com/kubernetes/kops.git
Merge pull request #4445 from chrislovecnm/lifecycle-overrides
Lifecycle overrides
This commit is contained in:
commit
bd57954452
|
@ -66,6 +66,10 @@ type UpdateClusterOptions struct {
|
|||
CreateKubecfg bool
|
||||
|
||||
Phase string
|
||||
|
||||
// LifecycleOverrides is a slice of taskName=lifecycle name values. This slice is used
|
||||
// to populate the LifecycleOverrides struct member in ApplyClusterCmd struct.
|
||||
LifecycleOverrides []string
|
||||
}
|
||||
|
||||
func (o *UpdateClusterOptions) InitDefaults() {
|
||||
|
@ -109,6 +113,8 @@ func NewCmdUpdateCluster(f *util.Factory, out io.Writer) *cobra.Command {
|
|||
cmd.Flags().StringVar(&options.OutDir, "out", options.OutDir, "Path to write any local output")
|
||||
cmd.Flags().BoolVar(&options.CreateKubecfg, "create-kube-config", options.CreateKubecfg, "Will control automatically creating the kube config file on your local filesystem")
|
||||
cmd.Flags().StringVar(&options.Phase, "phase", options.Phase, "Subset of tasks to run: "+strings.Join(cloudup.Phases.List(), ", "))
|
||||
cmd.Flags().StringSliceVar(&options.LifecycleOverrides, "lifecycle-overrides", options.LifecycleOverrides, "comma separated list of phase overrides, example: SecurityGroups=Ignore,InternetGateway=ExistsAndWarnIfChanges")
|
||||
|
||||
return cmd
|
||||
}
|
||||
|
||||
|
@ -195,6 +201,25 @@ func RunUpdateCluster(f *util.Factory, clusterName string, out io.Writer, c *Upd
|
|||
}
|
||||
}
|
||||
|
||||
lifecycleOverrideMap := make(map[string]fi.Lifecycle)
|
||||
|
||||
for _, override := range c.LifecycleOverrides {
|
||||
values := strings.Split(override, "=")
|
||||
if len(values) != 2 {
|
||||
return fmt.Errorf("Incorrect syntax for lifecyle-overrides, correct syntax is TaskName=lifecycleName, override provided: %q", override)
|
||||
}
|
||||
|
||||
taskName := values[0]
|
||||
lifecycleName := values[1]
|
||||
|
||||
lifecycleOverride, err := parseLifecycle(lifecycleName)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
lifecycleOverrideMap[taskName] = lifecycleOverride
|
||||
}
|
||||
|
||||
var instanceGroups []*kops.InstanceGroup
|
||||
{
|
||||
list, err := clientset.InstanceGroupsFor(cluster).List(metav1.ListOptions{})
|
||||
|
@ -207,15 +232,16 @@ func RunUpdateCluster(f *util.Factory, clusterName string, out io.Writer, c *Upd
|
|||
}
|
||||
|
||||
applyCmd := &cloudup.ApplyClusterCmd{
|
||||
Clientset: clientset,
|
||||
Cluster: cluster,
|
||||
DryRun: isDryrun,
|
||||
InstanceGroups: instanceGroups,
|
||||
MaxTaskDuration: c.MaxTaskDuration,
|
||||
Models: strings.Split(c.Models, ","),
|
||||
OutDir: c.OutDir,
|
||||
Phase: phase,
|
||||
TargetName: targetName,
|
||||
Clientset: clientset,
|
||||
Cluster: cluster,
|
||||
DryRun: isDryrun,
|
||||
InstanceGroups: instanceGroups,
|
||||
MaxTaskDuration: c.MaxTaskDuration,
|
||||
Models: strings.Split(c.Models, ","),
|
||||
OutDir: c.OutDir,
|
||||
Phase: phase,
|
||||
TargetName: targetName,
|
||||
LifecycleOverrides: lifecycleOverrideMap,
|
||||
}
|
||||
|
||||
if err := applyCmd.Run(); err != nil {
|
||||
|
@ -335,6 +361,13 @@ func RunUpdateCluster(f *util.Factory, clusterName string, out io.Writer, c *Upd
|
|||
return nil
|
||||
}
|
||||
|
||||
func parseLifecycle(lifecycle string) (fi.Lifecycle, error) {
|
||||
if v, ok := fi.LifecycleNameMap[lifecycle]; ok {
|
||||
return v, nil
|
||||
}
|
||||
return "", fmt.Errorf("unknown lifecycle %q, available lifecycle: %s", lifecycle, strings.Join(fi.Lifecycles.List(), ","))
|
||||
}
|
||||
|
||||
func usesBastion(instanceGroups []*kops.InstanceGroup) bool {
|
||||
for _, ig := range instanceGroups {
|
||||
if ig.Spec.Role == kops.InstanceGroupRoleBastion {
|
||||
|
|
|
@ -26,13 +26,14 @@ kops update cluster
|
|||
### Options
|
||||
|
||||
```
|
||||
--create-kube-config Will control automatically creating the kube config file on your local filesystem (default true)
|
||||
--model string Models to apply (separate multiple models with commas) (default "config,proto,cloudup")
|
||||
--out string Path to write any local output
|
||||
--phase string Subset of tasks to run: assets, cluster, network, security
|
||||
--ssh-public-key string SSH public key to use (deprecated: use kops create secret instead)
|
||||
--target string Target - direct, terraform, cloudformation (default "direct")
|
||||
-y, --yes Create cloud resources, without --yes update is in dry run mode
|
||||
--create-kube-config Will control automatically creating the kube config file on your local filesystem (default true)
|
||||
--lifecycle-overrides stringSlice comma separated list of phase overrides, example: SecurityGroups=Ignore,InternetGateway=ExistsAndWarnIfChanges
|
||||
--model string Models to apply (separate multiple models with commas) (default "config,proto,cloudup")
|
||||
--out string Path to write any local output
|
||||
--phase string Subset of tasks to run: assets, cluster, network, security
|
||||
--ssh-public-key string SSH public key to use (deprecated: use kops create secret instead)
|
||||
--target string Target - direct, terraform, cloudformation (default "direct")
|
||||
-y, --yes Create cloud resources, without --yes update is in dry run mode
|
||||
```
|
||||
|
||||
### Options inherited from parent commands
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *CopyDockerImage) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *CopyDockerImage) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &CopyDockerImage{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *CopyFile) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *CopyFile) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &CopyFile{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -123,6 +123,11 @@ type ApplyClusterCmd struct {
|
|||
|
||||
// Phase can be set to a Phase to run the specific subset of tasks, if we don't want to run everything
|
||||
Phase Phase
|
||||
|
||||
// LifecycleOverrides is passed in to override the lifecycle for one of more tasks.
|
||||
// The key value is the task name such as InternetGateway and the value is the fi.Lifecycle
|
||||
// that is re-mapped.
|
||||
LifecycleOverrides map[string]fi.Lifecycle
|
||||
}
|
||||
|
||||
func (c *ApplyClusterCmd) Run() error {
|
||||
|
@ -628,7 +633,7 @@ func (c *ApplyClusterCmd) Run() error {
|
|||
|
||||
tf.AddTo(l.TemplateFunctions)
|
||||
|
||||
taskMap, err := l.BuildTasks(modelStore, fileModels, assetBuilder, &stageAssetsLifecycle)
|
||||
taskMap, err := l.BuildTasks(modelStore, fileModels, assetBuilder, &stageAssetsLifecycle, c.LifecycleOverrides)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error building tasks: %v", err)
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *AutoscalingGroup) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *AutoscalingGroup) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &AutoscalingGroup{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *DHCPOptions) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *DHCPOptions) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &DHCPOptions{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *DNSName) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *DNSName) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &DNSName{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *DNSZone) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *DNSZone) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &DNSZone{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *EBSVolume) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *EBSVolume) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &EBSVolume{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *ElasticIP) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *ElasticIP) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &ElasticIP{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *IAMInstanceProfile) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *IAMInstanceProfile) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &IAMInstanceProfile{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *IAMInstanceProfileRole) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *IAMInstanceProfileRole) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &IAMInstanceProfileRole{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *IAMRole) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *IAMRole) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &IAMRole{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *IAMRolePolicy) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *IAMRolePolicy) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &IAMRolePolicy{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *InternetGateway) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *InternetGateway) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &InternetGateway{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *LaunchConfiguration) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *LaunchConfiguration) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &LaunchConfiguration{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *LoadBalancer) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *LoadBalancer) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &LoadBalancer{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *LoadBalancerAttachment) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *LoadBalancerAttachment) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &LoadBalancerAttachment{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *NatGateway) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *NatGateway) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &NatGateway{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Route) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Route) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Route{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *RouteTable) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *RouteTable) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &RouteTable{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *RouteTableAssociation) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *RouteTableAssociation) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &RouteTableAssociation{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *SecurityGroup) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *SecurityGroup) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &SecurityGroup{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *SecurityGroupRule) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *SecurityGroupRule) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &SecurityGroupRule{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *SSHKey) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *SSHKey) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &SSHKey{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Subnet) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Subnet) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Subnet{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *VPC) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *VPC) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &VPC{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *VPCDHCPOptionsAssociation) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *VPCDHCPOptionsAssociation) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &VPCDHCPOptionsAssociation{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Droplet) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Droplet) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Droplet{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Volume) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Volume) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Volume{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Address) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Address) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Address{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Disk) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Disk) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Disk{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *FirewallRule) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *FirewallRule) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &FirewallRule{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *ForwardingRule) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *ForwardingRule) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &ForwardingRule{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Instance) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Instance) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Instance{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *InstanceGroupManager) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *InstanceGroupManager) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &InstanceGroupManager{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *InstanceTemplate) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *InstanceTemplate) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &InstanceTemplate{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Network) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Network) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Network{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *StorageBucketAcl) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *StorageBucketAcl) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &StorageBucketAcl{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *StorageBucketIam) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *StorageBucketIam) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &StorageBucketIam{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2017 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *StorageObjectAcl) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *StorageObjectAcl) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &StorageObjectAcl{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Subnet) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Subnet) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Subnet{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *TargetPool) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *TargetPool) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &TargetPool{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -149,7 +149,7 @@ func ignoreHandler(i *loader.TreeWalkItem) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (l *Loader) BuildTasks(modelStore vfs.Path, models []string, assetBuilder *assets.AssetBuilder, lifecycle *fi.Lifecycle) (map[string]fi.Task, error) {
|
||||
func (l *Loader) BuildTasks(modelStore vfs.Path, models []string, assetBuilder *assets.AssetBuilder, lifecycle *fi.Lifecycle, lifecycleOverrides map[string]fi.Lifecycle) (map[string]fi.Task, error) {
|
||||
// Second pass: load everything else
|
||||
tw := &loader.TreeWalker{
|
||||
DefaultHandler: l.objectHandler,
|
||||
|
@ -172,7 +172,8 @@ func (l *Loader) BuildTasks(modelStore vfs.Path, models []string, assetBuilder *
|
|||
|
||||
for _, builder := range l.Builders {
|
||||
context := &fi.ModelBuilderContext{
|
||||
Tasks: l.tasks,
|
||||
Tasks: l.tasks,
|
||||
LifecycleOverrides: lifecycleOverrides,
|
||||
}
|
||||
err := builder.Build(context)
|
||||
if err != nil {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *SecurityGroup) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *SecurityGroup) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &SecurityGroup{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -160,6 +160,10 @@ func (r *SecurityGroupRule) GetLifecycle() *fi.Lifecycle {
|
|||
return r.Lifecycle
|
||||
}
|
||||
|
||||
func (r *SecurityGroupRule) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
r.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
func (r *SecurityGroupRule) String() string {
|
||||
return fi.TaskAsString(r)
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Volume) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Volume) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Volume{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Keypair) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Keypair) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Keypair{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *ManagedFile) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *ManagedFile) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &ManagedFile{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *MirrorKeystore) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *MirrorKeystore) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &MirrorKeystore{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *MirrorSecrets) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *MirrorSecrets) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &MirrorSecrets{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -52,6 +52,11 @@ func (o *Secret) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *Secret) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &Secret{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
|
@ -16,6 +16,8 @@ limitations under the License.
|
|||
|
||||
package fi
|
||||
|
||||
import "k8s.io/apimachinery/pkg/util/sets"
|
||||
|
||||
type Lifecycle string
|
||||
|
||||
const (
|
||||
|
@ -38,4 +40,27 @@ const (
|
|||
// HasLifecycle indicates that the task has a Lifecycle
|
||||
type HasLifecycle interface {
|
||||
GetLifecycle() *Lifecycle
|
||||
// SetLifecycle is used to override a tasks lifecycle. If a lifecycle overide exists for a specific task name, then the
|
||||
// lifecycle is modified.
|
||||
SetLifecycle(lifecycle Lifecycle)
|
||||
}
|
||||
|
||||
// Lifecycles are used for ux validation. When validation fails the lifecycle names are
|
||||
// printed out.
|
||||
var Lifecycles = sets.NewString(
|
||||
string(LifecycleSync),
|
||||
string(LifecycleIgnore),
|
||||
string(LifecycleWarnIfInsufficientAccess),
|
||||
string(LifecycleExistsAndValidates),
|
||||
string(LifecycleExistsAndWarnIfChanges),
|
||||
)
|
||||
|
||||
// LifecycleNameMap is used to validate in the UX. When a user provides a lifecycle name
|
||||
// it then can be mapped to the actual lifecycle.
|
||||
var LifecycleNameMap = map[string]Lifecycle{
|
||||
"Sync": LifecycleSync,
|
||||
"Ignore": LifecycleIgnore,
|
||||
"WarnIfInsufficientAccess": LifecycleWarnIfInsufficientAccess,
|
||||
"ExistsAndValidates": LifecycleExistsAndValidates,
|
||||
"ExistsAndWarnIfChanges": LifecycleExistsAndWarnIfChanges,
|
||||
}
|
||||
|
|
|
@ -46,10 +46,12 @@ type ModelBuilder interface {
|
|||
|
||||
// ModelBuilderContext is a context object that holds state we want to pass to ModelBuilder
|
||||
type ModelBuilderContext struct {
|
||||
Tasks map[string]Task
|
||||
Tasks map[string]Task
|
||||
LifecycleOverrides map[string]Lifecycle
|
||||
}
|
||||
|
||||
func (c *ModelBuilderContext) AddTask(task Task) {
|
||||
task = c.setLifecycleOverride(task)
|
||||
key := buildTaskKey(task)
|
||||
|
||||
existing, found := c.Tasks[key]
|
||||
|
@ -64,6 +66,7 @@ func (c *ModelBuilderContext) AddTask(task Task) {
|
|||
// If it does exist, it verifies that the existing task reflect.DeepEqual the new task,
|
||||
// if they are different an error is returned.
|
||||
func (c *ModelBuilderContext) EnsureTask(task Task) error {
|
||||
task = c.setLifecycleOverride(task)
|
||||
key := buildTaskKey(task)
|
||||
|
||||
existing, found := c.Tasks[key]
|
||||
|
@ -83,6 +86,32 @@ func (c *ModelBuilderContext) EnsureTask(task Task) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
// setLifecycleOverride determines if a Lifecycle is in the LifecycleOverrides map for the current task.
|
||||
// If the lifecycle exist then the task lifecycle is set to the lifecycle provides in LifecycleOverrides.
|
||||
// This func allows for lifecycles to be passed in dynamically and have the task lifecycle set accordingly.
|
||||
func (c *ModelBuilderContext) setLifecycleOverride(task Task) Task {
|
||||
// TODO(@chrislovecnm) - wonder if we should update the nodeup tasks to have lifecycle
|
||||
// TODO - so that we can return an error here, rather than just returning.
|
||||
// certain tasks have not implemented HasLifecycle interface
|
||||
hl, ok := task.(HasLifecycle)
|
||||
if !ok {
|
||||
glog.V(8).Infof("task %T does not implement HasLifecycle", task)
|
||||
return task
|
||||
}
|
||||
|
||||
typeName := TypeNameForTask(task)
|
||||
glog.V(8).Infof("testing task %q", typeName)
|
||||
|
||||
// typeName can be values like "InternetGateway"
|
||||
value, ok := c.LifecycleOverrides[typeName]
|
||||
if ok {
|
||||
glog.Warningf("overriding task %s, lifecycle %s", task, value)
|
||||
hl.SetLifecycle(value)
|
||||
}
|
||||
|
||||
return task
|
||||
}
|
||||
|
||||
func buildTaskKey(task Task) string {
|
||||
hasName, ok := task.(HasName)
|
||||
if !ok {
|
||||
|
|
|
@ -30,7 +30,7 @@ type FitaskGenerator struct {
|
|||
var _ codegen.Generator = &FitaskGenerator{}
|
||||
|
||||
const fileHeaderDef = `/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
Copyright 2018 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -86,6 +86,11 @@ func (o *{{.Name}}) GetLifecycle() *fi.Lifecycle {
|
|||
return o.Lifecycle
|
||||
}
|
||||
|
||||
// SetLifecycle sets the Lifecycle of the object, implementing fi.SetLifecycle
|
||||
func (o *{{.Name}}) SetLifecycle(lifecycle fi.Lifecycle) {
|
||||
o.Lifecycle = &lifecycle
|
||||
}
|
||||
|
||||
var _ fi.HasName = &{{.Name}}{}
|
||||
|
||||
// GetName returns the Name of the object, implementing fi.HasName
|
||||
|
|
Loading…
Reference in New Issue