BootConfiguration struct for Bootstrap Container
Adding BootConfiguration structure in preparation for the implementation of Bootstrap Container / Ephemeral Cluster through "phase/executor". Change-Id: I0239e9c975784703dd6abacbb17b5e15744f3924
This commit is contained in:
parent
f164c97e6a
commit
e528a89a73
25
pkg/api/v1alpha1/README.md
Normal file
25
pkg/api/v1alpha1/README.md
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
# Generating *zz_generated.deepcopy.go* in api/v1alpha1
|
||||||
|
|
||||||
|
This directory contains the data types needed by *airshipctl phase run* command.
|
||||||
|
|
||||||
|
When you add a new data structure in this directory you will need to generate the file *zz_generated.deepcopy.go*.
|
||||||
|
To generate this file you will need the tool *controller-gen" executable.
|
||||||
|
|
||||||
|
If you don't have *controller-gen* in your machine, clone the following repository and compile it.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/kubernetes-sigs/controller-tools.git
|
||||||
|
cd controller-tools/cmd/controller-gen
|
||||||
|
go build -o controller-gen
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you can generate the *zz_generated.deepcopy.go* using *controller-gen* as follow:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
/path/to/controller-gen object paths=/path/to/airshipctl/pkg/api/v1alpha1/
|
||||||
|
```
|
||||||
|
|
||||||
|
At this point you should have a newly generated *zz_generated.deepcopy.go*.
|
||||||
|
Just check if your data structure has been added to this file and you are good to go.
|
||||||
|
|
||||||
|
>TODO: Add this task in the Makefile
|
48
pkg/api/v1alpha1/bootconfiguration_types.go
Normal file
48
pkg/api/v1alpha1/bootconfiguration_types.go
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package v1alpha1
|
||||||
|
|
||||||
|
import (
|
||||||
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
)
|
||||||
|
|
||||||
|
// EphemeralCluster structure contains the data for the ephemeral cluster
|
||||||
|
type EphemeralCluster struct {
|
||||||
|
BootstrapCommand string `json:"bootstrapCommand,omitempty"`
|
||||||
|
ConfigFilename string `json:"configFilename,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BootstrapContainer structure contains the data for the bootstrap container
|
||||||
|
type BootstrapContainer struct {
|
||||||
|
ContainerRuntime string `json:"containerRuntime,omitempty"`
|
||||||
|
Image string `json:"image,omitempty"`
|
||||||
|
Volume string `json:"volume,omitempty"`
|
||||||
|
Kubeconfig string `json:"kubeconfig,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// BootConfiguration structure is inherited from apimachinery TypeMeta and ObjectMeta and is a top level
|
||||||
|
// configuration structure for the bootstrap container
|
||||||
|
type BootConfiguration struct {
|
||||||
|
metav1.TypeMeta `json:",inline"`
|
||||||
|
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||||
|
|
||||||
|
BootstrapContainer BootstrapContainer `json:"bootstrapContainer"`
|
||||||
|
EphemeralCluster EphemeralCluster `json:"ephemeralCluster"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// DefaultBootConfiguration can be used to safely unmarshal BootConfiguration object without nil pointers
|
||||||
|
func DefaultBootConfiguration() *BootConfiguration {
|
||||||
|
return &BootConfiguration{}
|
||||||
|
}
|
@ -51,6 +51,7 @@ func init() {
|
|||||||
&ClusterMap{},
|
&ClusterMap{},
|
||||||
&ReplacementTransformer{},
|
&ReplacementTransformer{},
|
||||||
&Templater{},
|
&Templater{},
|
||||||
|
&BootConfiguration{},
|
||||||
)
|
)
|
||||||
_ = AddToScheme(Scheme) //nolint:errcheck
|
_ = AddToScheme(Scheme) //nolint:errcheck
|
||||||
}
|
}
|
||||||
|
@ -56,6 +56,48 @@ func (in *ApplyWaitOptions) DeepCopy() *ApplyWaitOptions {
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *BootConfiguration) DeepCopyInto(out *BootConfiguration) {
|
||||||
|
*out = *in
|
||||||
|
out.TypeMeta = in.TypeMeta
|
||||||
|
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||||
|
out.BootstrapContainer = in.BootstrapContainer
|
||||||
|
out.EphemeralCluster = in.EphemeralCluster
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootConfiguration.
|
||||||
|
func (in *BootConfiguration) DeepCopy() *BootConfiguration {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(BootConfiguration)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||||
|
func (in *BootConfiguration) 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 *BootstrapContainer) DeepCopyInto(out *BootstrapContainer) {
|
||||||
|
*out = *in
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapContainer.
|
||||||
|
func (in *BootstrapContainer) DeepCopy() *BootstrapContainer {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(BootstrapContainer)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *Builder) DeepCopyInto(out *Builder) {
|
func (in *Builder) DeepCopyInto(out *Builder) {
|
||||||
*out = *in
|
*out = *in
|
||||||
@ -194,6 +236,21 @@ func (in *Container) DeepCopy() *Container {
|
|||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *EphemeralCluster) DeepCopyInto(out *EphemeralCluster) {
|
||||||
|
*out = *in
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralCluster.
|
||||||
|
func (in *EphemeralCluster) DeepCopy() *EphemeralCluster {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(EphemeralCluster)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *ImageConfiguration) DeepCopyInto(out *ImageConfiguration) {
|
func (in *ImageConfiguration) DeepCopyInto(out *ImageConfiguration) {
|
||||||
*out = *in
|
*out = *in
|
||||||
|
Loading…
Reference in New Issue
Block a user