Document kubeadm API

This commit is contained in:
Michalis Kargakis 2018-02-04 18:48:04 +01:00
parent c047b8dbc1
commit c3521845c6
No known key found for this signature in database
GPG Key ID: EA0DEBF5DFA276E0
2 changed files with 248 additions and 101 deletions

View File

@ -29,48 +29,82 @@ import (
type MasterConfiguration struct { type MasterConfiguration struct {
metav1.TypeMeta metav1.TypeMeta
// API holds configuration for the k8s apiserver.
API API API API
// KubeProxy holds configuration for the k8s service proxy.
KubeProxy KubeProxy KubeProxy KubeProxy
// Etcd holds configuration for etcd.
Etcd Etcd Etcd Etcd
// KubeletConfiguration holds configuration for the kubelet.
KubeletConfiguration KubeletConfiguration KubeletConfiguration KubeletConfiguration
// Networking holds configuration for the networking topology of the cluster.
Networking Networking Networking Networking
// KubernetesVersion is the target version of the control plane.
KubernetesVersion string KubernetesVersion string
// CloudProvider is the name of the cloud provider.
CloudProvider string CloudProvider string
// NodeName is the name of the node that will host the k8s control plane.
// Defaults to the hostname if not provided.
NodeName string NodeName string
// AuthorizationModes is a set of authorization modes used inside the cluster.
// If not specified, defaults to Node and RBAC, meaning both the node
// authorizer and RBAC are enabled.
AuthorizationModes []string AuthorizationModes []string
// Mark the controller and api server pods as privileged as some cloud // Mark the controller and api server pods as privileged as some cloud
// controllers like openstack need escalated privileges under some conditions // controllers like openstack need escalated privileges under some conditions
// example - loading a config drive to fetch node information // example - loading a config drive to fetch node information.
PrivilegedPods bool PrivilegedPods bool
// Token is used for establishing bidirectional trust between nodes and masters.
// Used for joining nodes in the cluster.
Token string Token string
// TokenTTL is a ttl for Token. Defaults to 24h.
TokenTTL *metav1.Duration TokenTTL *metav1.Duration
// APIServerExtraArgs is a set of extra flags to pass to the API Server or override
// default ones in form of <flagname>=<value>.
// TODO: This is temporary and ideally we would like to switch all components to
// use ComponentConfig + ConfigMaps.
APIServerExtraArgs map[string]string APIServerExtraArgs map[string]string
// ControllerManagerExtraArgs is a set of extra flags to pass to the Controller Manager
// or override default ones in form of <flagname>=<value>
// TODO: This is temporary and ideally we would like to switch all components to
// use ComponentConfig + ConfigMaps.
ControllerManagerExtraArgs map[string]string ControllerManagerExtraArgs map[string]string
// SchedulerExtraArgs is a set of extra flags to pass to the Scheduler or override
// default ones in form of <flagname>=<value>
// TODO: This is temporary and ideally we would like to switch all components to
// use ComponentConfig + ConfigMaps.
SchedulerExtraArgs map[string]string SchedulerExtraArgs map[string]string
// APIServerExtraVolumes is an extra set of host volumes mounted to the API server.
APIServerExtraVolumes []HostPathMount APIServerExtraVolumes []HostPathMount
// ControllerManagerExtraVolumes is an extra set of host volumes mounted to the
// Controller Manager.
ControllerManagerExtraVolumes []HostPathMount ControllerManagerExtraVolumes []HostPathMount
// SchedulerExtraVolumes is an extra set of host volumes mounted to the scheduler.
SchedulerExtraVolumes []HostPathMount SchedulerExtraVolumes []HostPathMount
// APIServerCertSANs sets extra Subject Alternative Names for the API Server signing cert // APIServerCertSANs sets extra Subject Alternative Names for the API Server
// signing cert.
APIServerCertSANs []string APIServerCertSANs []string
// CertificatesDir specifies where to store or look for all required certificates // CertificatesDir specifies where to store or look for all required certificates.
CertificatesDir string CertificatesDir string
// ImageRepository what container registry to pull control plane images from // ImageRepository is the container registry to pull control plane images from.
ImageRepository string ImageRepository string
// Container registry for core images generated by CI // CIImageRepository is the container registry for core images generated by CI.
// Useful for running kubeadm with images from CI builds.
// +k8s:conversion-gen=false // +k8s:conversion-gen=false
CIImageRepository string CIImageRepository string
// UnifiedControlPlaneImage specifies if a specific container image should be used for all control plane components // UnifiedControlPlaneImage specifies if a specific container image should be
// used for all control plane components.
UnifiedControlPlaneImage string UnifiedControlPlaneImage string
// FeatureGates enabled by the user // FeatureGates enabled by the user.
FeatureGates map[string]bool FeatureGates map[string]bool
} }
@ -78,43 +112,64 @@ type MasterConfiguration struct {
type API struct { type API struct {
// AdvertiseAddress sets the address for the API server to advertise. // AdvertiseAddress sets the address for the API server to advertise.
AdvertiseAddress string AdvertiseAddress string
// BindPort sets the secure port for the API Server to bind to // BindPort sets the secure port for the API Server to bind to.
// Defaults to 6443.
BindPort int32 BindPort int32
} }
// TokenDiscovery contains elements needed for token discovery // TokenDiscovery contains elements needed for token discovery.
type TokenDiscovery struct { type TokenDiscovery struct {
// ID is the first part of a bootstrap token. Considered public information.
// It is used when referring to a token without leaking the secret part.
ID string ID string
// Secret is the second part of a bootstrap token. Should only be shared
// with trusted parties.
Secret string Secret string
Addresses []string // TODO: Seems unused. Remove?
// Addresses []string
} }
// Networking contains elements describing cluster's networking configuration // Networking contains elements describing cluster's networking configuration.
type Networking struct { type Networking struct {
// ServiceSubnet is the subnet used by k8s services. Defaults to "10.96.0.0/12".
ServiceSubnet string ServiceSubnet string
// PodSubnet is the subnet used by pods.
PodSubnet string PodSubnet string
// DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
DNSDomain string DNSDomain string
} }
// Etcd contains elements describing Etcd configuration // Etcd contains elements describing Etcd configuration.
type Etcd struct { type Etcd struct {
// Endpoints of etcd members. Useful for using external etcd.
// If not provided, kubeadm will run etcd in a static pod.
Endpoints []string Endpoints []string
// CAFile is an SSL Certificate Authority file used to secure etcd communication.
CAFile string CAFile string
// CertFile is an SSL certification file used to secure etcd communication.
CertFile string CertFile string
// KeyFile is an SSL key file used to secure etcd communication.
KeyFile string KeyFile string
// DataDir is the directory etcd will place its data.
// Defaults to "/var/lib/etcd".
DataDir string DataDir string
// ExtraArgs are extra arguments provided to the etcd binary
// when run inside a static pod.
ExtraArgs map[string]string ExtraArgs map[string]string
// Image specifies which container image to use for running etcd. If empty, automatically populated by kubeadm using the image repository and default etcd version // Image specifies which container image to use for running etcd.
// If empty, automatically populated by kubeadm using the image
// repository and default etcd version.
Image string Image string
// SelfHosted holds configuration for self-hosting etcd.
SelfHosted *SelfHostedEtcd SelfHosted *SelfHostedEtcd
} }
// SelfHostedEtcd describes options required to configure self-hosted etcd // SelfHostedEtcd describes options required to configure self-hosted etcd.
type SelfHostedEtcd struct { type SelfHostedEtcd struct {
// CertificatesDir represents the directory where all etcd TLS assets are stored. By default this is // CertificatesDir represents the directory where all etcd TLS assets are stored.
// a dir names "etcd" in the main CertificatesDir value. // Defaults to "/etc/kubernetes/pki/etcd".
CertificatesDir string CertificatesDir string
// ClusterServiceName is the name of the service that load balances the etcd cluster // ClusterServiceName is the name of the service that load balances the etcd cluster.
ClusterServiceName string ClusterServiceName string
// EtcdVersion is the version of etcd running in the cluster. // EtcdVersion is the version of etcd running in the cluster.
EtcdVersion string EtcdVersion string
@ -124,17 +179,32 @@ type SelfHostedEtcd struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// NodeConfiguration contains elements describing a particular node // NodeConfiguration contains elements describing a particular node.
// TODO: This struct should be replaced by dynamic kubelet configuration.
type NodeConfiguration struct { type NodeConfiguration struct {
metav1.TypeMeta metav1.TypeMeta
// CACertPath is the path to the SSL certificate authority used to
// secure comunications between node and master.
// Defaults to "/etc/kubernetes/pki/ca.crt".
CACertPath string CACertPath string
// DiscoveryFile is a file or url to a kubeconfig file from which to
// load cluster information.
DiscoveryFile string DiscoveryFile string
// DiscoveryToken is a token used to validate cluster information
// fetched from the master.
DiscoveryToken string DiscoveryToken string
// Currently we only pay attention to one api server but hope to support >1 in the future // DiscoveryTokenAPIServers is a set of IPs to API servers from which info
// will be fetched. Currently we only pay attention to one API server but
// hope to support >1 in the future.
DiscoveryTokenAPIServers []string DiscoveryTokenAPIServers []string
// NodeName is the name of the node to join the cluster. Defaults
// to the name of the host.
NodeName string NodeName string
// TLSBootstrapToken is a token used for TLS bootstrapping.
// Defaults to Token.
TLSBootstrapToken string TLSBootstrapToken string
// Token is used for both discovery and TLS bootstrapping.
Token string Token string
// DiscoveryTokenCACertHashes specifies a set of public key pins to verify // DiscoveryTokenCACertHashes specifies a set of public key pins to verify
@ -152,11 +222,11 @@ type NodeConfiguration struct {
// the security of kubeadm since other nodes can impersonate the master. // the security of kubeadm since other nodes can impersonate the master.
DiscoveryTokenUnsafeSkipCAVerification bool DiscoveryTokenUnsafeSkipCAVerification bool
// FeatureGates enabled by the user // FeatureGates enabled by the user.
FeatureGates map[string]bool FeatureGates map[string]bool
} }
// KubeletConfiguration contains elements describing initial remote configuration of kubelet // KubeletConfiguration contains elements describing initial remote configuration of kubelet.
type KubeletConfiguration struct { type KubeletConfiguration struct {
BaseConfig *kubeletconfigv1alpha1.KubeletConfiguration BaseConfig *kubeletconfigv1alpha1.KubeletConfiguration
} }
@ -174,14 +244,18 @@ func (cfg *MasterConfiguration) GetControlPlaneImageRepository() string {
} }
// HostPathMount contains elements describing volumes that are mounted from the // HostPathMount contains elements describing volumes that are mounted from the
// host // host.
type HostPathMount struct { type HostPathMount struct {
// Name of the volume inside the pod template.
Name string Name string
// HostPath is the path in the host that will be mounted inside
// the pod.
HostPath string HostPath string
// MountPath is the path inside the pod where hostPath will be mounted.
MountPath string MountPath string
} }
// KubeProxy contains elements describing the proxy configuration // KubeProxy contains elements describing the proxy configuration.
type KubeProxy struct { type KubeProxy struct {
Config *kubeproxyconfigv1alpha1.KubeProxyConfiguration Config *kubeproxyconfigv1alpha1.KubeProxyConfiguration
} }

View File

@ -29,14 +29,26 @@ import (
type MasterConfiguration struct { type MasterConfiguration struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
// API holds configuration for the k8s apiserver.
API API `json:"api"` API API `json:"api"`
// KubeProxy holds configuration for the k8s service proxy.
KubeProxy KubeProxy `json:"kubeProxy"` KubeProxy KubeProxy `json:"kubeProxy"`
// Etcd holds configuration for etcd.
Etcd Etcd `json:"etcd"` Etcd Etcd `json:"etcd"`
// KubeletConfiguration holds configuration for the kubelet.
KubeletConfiguration KubeletConfiguration `json:"kubeletConfiguration"` KubeletConfiguration KubeletConfiguration `json:"kubeletConfiguration"`
// Networking holds configuration for the networking topology of the cluster.
Networking Networking `json:"networking"` Networking Networking `json:"networking"`
// KubernetesVersion is the target version of the control plane.
KubernetesVersion string `json:"kubernetesVersion"` KubernetesVersion string `json:"kubernetesVersion"`
// CloudProvider is the name of the cloud provider.
CloudProvider string `json:"cloudProvider"` CloudProvider string `json:"cloudProvider"`
// NodeName is the name of the node that will host the k8s control plane.
// Defaults to the hostname if not provided.
NodeName string `json:"nodeName"` NodeName string `json:"nodeName"`
// AuthorizationModes is a set of authorization modes used inside the cluster.
// If not specified, defaults to Node and RBAC, meaning both the node
// authorizer and RBAC are enabled.
AuthorizationModes []string `json:"authorizationModes,omitempty"` AuthorizationModes []string `json:"authorizationModes,omitempty"`
// Mark the controller and api server pods as privileged as some cloud // Mark the controller and api server pods as privileged as some cloud
@ -44,28 +56,48 @@ type MasterConfiguration struct {
// example - loading a config drive to fetch node information // example - loading a config drive to fetch node information
PrivilegedPods bool `json:"privilegedPods"` PrivilegedPods bool `json:"privilegedPods"`
// Token is used for establishing bidirectional trust between nodes and masters.
// Used for joining nodes in the cluster.
Token string `json:"token"` Token string `json:"token"`
// TokenTTL is a ttl for Token. Defaults to 24h.
TokenTTL *metav1.Duration `json:"tokenTTL,omitempty"` TokenTTL *metav1.Duration `json:"tokenTTL,omitempty"`
// APIServerExtraArgs is a set of extra flags to pass to the API Server or override
// default ones in form of <flagname>=<value>.
// TODO: This is temporary and ideally we would like to switch all components to
// use ComponentConfig + ConfigMaps.
APIServerExtraArgs map[string]string `json:"apiServerExtraArgs,omitempty"` APIServerExtraArgs map[string]string `json:"apiServerExtraArgs,omitempty"`
// ControllerManagerExtraArgs is a set of extra flags to pass to the Controller Manager
// or override default ones in form of <flagname>=<value>
// TODO: This is temporary and ideally we would like to switch all components to
// use ComponentConfig + ConfigMaps.
ControllerManagerExtraArgs map[string]string `json:"controllerManagerExtraArgs,omitempty"` ControllerManagerExtraArgs map[string]string `json:"controllerManagerExtraArgs,omitempty"`
// SchedulerExtraArgs is a set of extra flags to pass to the Scheduler or override
// default ones in form of <flagname>=<value>
// TODO: This is temporary and ideally we would like to switch all components to
// use ComponentConfig + ConfigMaps.
SchedulerExtraArgs map[string]string `json:"schedulerExtraArgs,omitempty"` SchedulerExtraArgs map[string]string `json:"schedulerExtraArgs,omitempty"`
// APIServerExtraVolumes is an extra set of host volumes mounted to the API server.
APIServerExtraVolumes []HostPathMount `json:"apiServerExtraVolumes,omitempty"` APIServerExtraVolumes []HostPathMount `json:"apiServerExtraVolumes,omitempty"`
// ControllerManagerExtraVolumes is an extra set of host volumes mounted to the
// Controller Manager.
ControllerManagerExtraVolumes []HostPathMount `json:"controllerManagerExtraVolumes,omitempty"` ControllerManagerExtraVolumes []HostPathMount `json:"controllerManagerExtraVolumes,omitempty"`
// SchedulerExtraVolumes is an extra set of host volumes mounted to the scheduler.
SchedulerExtraVolumes []HostPathMount `json:"schedulerExtraVolumes,omitempty"` SchedulerExtraVolumes []HostPathMount `json:"schedulerExtraVolumes,omitempty"`
// APIServerCertSANs sets extra Subject Alternative Names for the API Server signing cert // APIServerCertSANs sets extra Subject Alternative Names for the API Server signing cert.
APIServerCertSANs []string `json:"apiServerCertSANs,omitempty"` APIServerCertSANs []string `json:"apiServerCertSANs,omitempty"`
// CertificatesDir specifies where to store or look for all required certificates // CertificatesDir specifies where to store or look for all required certificates.
CertificatesDir string `json:"certificatesDir"` CertificatesDir string `json:"certificatesDir"`
// ImageRepository what container registry to pull control plane images from // ImageRepository what container registry to pull control plane images from
ImageRepository string `json:"imageRepository"` ImageRepository string `json:"imageRepository"`
// UnifiedControlPlaneImage specifies if a specific container image should be used for all control plane components // UnifiedControlPlaneImage specifies if a specific container image should
// be used for all control plane components.
UnifiedControlPlaneImage string `json:"unifiedControlPlaneImage"` UnifiedControlPlaneImage string `json:"unifiedControlPlaneImage"`
// FeatureGates enabled by the user // FeatureGates enabled by the user.
FeatureGates map[string]bool `json:"featureGates,omitempty"` FeatureGates map[string]bool `json:"featureGates,omitempty"`
} }
@ -73,43 +105,64 @@ type MasterConfiguration struct {
type API struct { type API struct {
// AdvertiseAddress sets the address for the API server to advertise. // AdvertiseAddress sets the address for the API server to advertise.
AdvertiseAddress string `json:"advertiseAddress"` AdvertiseAddress string `json:"advertiseAddress"`
// BindPort sets the secure port for the API Server to bind to // BindPort sets the secure port for the API Server to bind to.
// Defaults to 6443.
BindPort int32 `json:"bindPort"` BindPort int32 `json:"bindPort"`
} }
// TokenDiscovery contains elements needed for token discovery // TokenDiscovery contains elements needed for token discovery.
type TokenDiscovery struct { type TokenDiscovery struct {
// ID is the first part of a bootstrap token. Considered public information.
// It is used when referring to a token without leaking the secret part.
ID string `json:"id"` ID string `json:"id"`
// Secret is the second part of a bootstrap token. Should only be shared
// with trusted parties.
Secret string `json:"secret"` Secret string `json:"secret"`
Addresses []string `json:"addresses"` // TODO: Seems unused. Remove?
// Addresses []string `json:"addresses"`
} }
// Networking contains elements describing cluster's networking configuration // Networking contains elements describing cluster's networking configuration
type Networking struct { type Networking struct {
// ServiceSubnet is the subnet used by k8s services. Defaults to "10.96.0.0/12".
ServiceSubnet string `json:"serviceSubnet"` ServiceSubnet string `json:"serviceSubnet"`
// PodSubnet is the subnet used by pods.
PodSubnet string `json:"podSubnet"` PodSubnet string `json:"podSubnet"`
// DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
DNSDomain string `json:"dnsDomain"` DNSDomain string `json:"dnsDomain"`
} }
// Etcd contains elements describing Etcd configuration // Etcd contains elements describing Etcd configuration.
type Etcd struct { type Etcd struct {
// Endpoints of etcd members. Useful for using external etcd.
// If not provided, kubeadm will run etcd in a static pod.
Endpoints []string `json:"endpoints"` Endpoints []string `json:"endpoints"`
// CAFile is an SSL Certificate Authority file used to secure etcd communication.
CAFile string `json:"caFile"` CAFile string `json:"caFile"`
// CertFile is an SSL certification file used to secure etcd communication.
CertFile string `json:"certFile"` CertFile string `json:"certFile"`
// KeyFile is an SSL key file used to secure etcd communication.
KeyFile string `json:"keyFile"` KeyFile string `json:"keyFile"`
// DataDir is the directory etcd will place its data.
// Defaults to "/var/lib/etcd".
DataDir string `json:"dataDir"` DataDir string `json:"dataDir"`
// ExtraArgs are extra arguments provided to the etcd binary
// when run inside a static pod.
ExtraArgs map[string]string `json:"extraArgs,omitempty"` ExtraArgs map[string]string `json:"extraArgs,omitempty"`
// Image specifies which container image to use for running etcd. If empty, automatically populated by kubeadm using the image repository and default etcd version // Image specifies which container image to use for running etcd.
// If empty, automatically populated by kubeadm using the image
// repository and default etcd version.
Image string `json:"image"` Image string `json:"image"`
// SelfHosted holds configuration for self-hosting etcd.
SelfHosted *SelfHostedEtcd `json:"selfHosted,omitempty"` SelfHosted *SelfHostedEtcd `json:"selfHosted,omitempty"`
} }
// SelfHostedEtcd describes options required to configure self-hosted etcd // SelfHostedEtcd describes options required to configure self-hosted etcd.
type SelfHostedEtcd struct { type SelfHostedEtcd struct {
// CertificatesDir represents the directory where all etcd TLS assets are stored. By default this is // CertificatesDir represents the directory where all etcd TLS assets are stored.
// a dir names "etcd" in the main CertificatesDir value. // Defaults to "/etc/kubernetes/pki/etcd".
CertificatesDir string `json:"certificatesDir"` CertificatesDir string `json:"certificatesDir"`
// ClusterServiceName is the name of the service that load balances the etcd cluster // ClusterServiceName is the name of the service that load balances the etcd cluster.
ClusterServiceName string `json:"clusterServiceName"` ClusterServiceName string `json:"clusterServiceName"`
// EtcdVersion is the version of etcd running in the cluster. // EtcdVersion is the version of etcd running in the cluster.
EtcdVersion string `json:"etcdVersion"` EtcdVersion string `json:"etcdVersion"`
@ -119,16 +172,32 @@ type SelfHostedEtcd struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// NodeConfiguration contains elements describing a particular node // NodeConfiguration contains elements describing a particular node.
// TODO: This struct should be replaced by dynamic kubelet configuration.
type NodeConfiguration struct { type NodeConfiguration struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
// CACertPath is the path to the SSL certificate authority used to
// secure comunications between node and master.
// Defaults to "/etc/kubernetes/pki/ca.crt".
CACertPath string `json:"caCertPath"` CACertPath string `json:"caCertPath"`
// DiscoveryFile is a file or url to a kubeconfig file from which to
// load cluster information.
DiscoveryFile string `json:"discoveryFile"` DiscoveryFile string `json:"discoveryFile"`
// DiscoveryToken is a token used to validate cluster information
// fetched from the master.
DiscoveryToken string `json:"discoveryToken"` DiscoveryToken string `json:"discoveryToken"`
// DiscoveryTokenAPIServers is a set of IPs to API servers from which info
// will be fetched. Currently we only pay attention to one API server but
// hope to support >1 in the future.
DiscoveryTokenAPIServers []string `json:"discoveryTokenAPIServers,omitempty"` DiscoveryTokenAPIServers []string `json:"discoveryTokenAPIServers,omitempty"`
// NodeName is the name of the node to join the cluster. Defaults
// to the name of the host.
NodeName string `json:"nodeName"` NodeName string `json:"nodeName"`
// TLSBootstrapToken is a token used for TLS bootstrapping.
// Defaults to Token.
TLSBootstrapToken string `json:"tlsBootstrapToken"` TLSBootstrapToken string `json:"tlsBootstrapToken"`
// Token is used for both discovery and TLS bootstrapping.
Token string `json:"token"` Token string `json:"token"`
// DiscoveryTokenCACertHashes specifies a set of public key pins to verify // DiscoveryTokenCACertHashes specifies a set of public key pins to verify
@ -146,24 +215,28 @@ type NodeConfiguration struct {
// the security of kubeadm since other nodes can impersonate the master. // the security of kubeadm since other nodes can impersonate the master.
DiscoveryTokenUnsafeSkipCAVerification bool `json:"discoveryTokenUnsafeSkipCAVerification"` DiscoveryTokenUnsafeSkipCAVerification bool `json:"discoveryTokenUnsafeSkipCAVerification"`
// FeatureGates enabled by the user // FeatureGates enabled by the user.
FeatureGates map[string]bool `json:"featureGates,omitempty"` FeatureGates map[string]bool `json:"featureGates,omitempty"`
} }
// KubeletConfiguration contains elements describing initial remote configuration of kubelet // KubeletConfiguration contains elements describing initial remote configuration of kubelet.
type KubeletConfiguration struct { type KubeletConfiguration struct {
BaseConfig *kubeletconfigv1alpha1.KubeletConfiguration `json:"baseConfig,omitempty"` BaseConfig *kubeletconfigv1alpha1.KubeletConfiguration `json:"baseConfig,omitempty"`
} }
// HostPathMount contains elements describing volumes that are mounted from the // HostPathMount contains elements describing volumes that are mounted from the
// host // host.
type HostPathMount struct { type HostPathMount struct {
// Name of the volume inside the pod template.
Name string `json:"name"` Name string `json:"name"`
// HostPath is the path in the host that will be mounted inside
// the pod.
HostPath string `json:"hostPath"` HostPath string `json:"hostPath"`
// MountPath is the path inside the pod where hostPath will be mounted.
MountPath string `json:"mountPath"` MountPath string `json:"mountPath"`
} }
// KubeProxy contains elements describing the proxy configuration // KubeProxy contains elements describing the proxy configuration.
type KubeProxy struct { type KubeProxy struct {
Config *kubeproxyconfigv1alpha1.KubeProxyConfiguration `json:"config,omitempty"` Config *kubeproxyconfigv1alpha1.KubeProxyConfiguration `json:"config,omitempty"`
} }