Documentation ¶
Overview ¶
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Copyright 2020 Mirantis, Inc.
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.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIServer ¶
type APIServer struct { ClusterConfig *config.ClusterConfig Storage component.Component LogLevel string // contains filtered or unexported fields }
APIServer implement the component interface to run kube api
type CASyncer ¶
type CASyncer struct {
JoinClient *v1beta1.JoinClient
}
CASyncer is the Component implementation to sync CAs between multiple controllers
type CRD ¶
type CRD struct {
// contains filtered or unexported fields
}
CRD unpacks bundled CRD definitions to the filesystem
type Calico ¶
type Calico struct {
// contains filtered or unexported fields
}
Calico is the Component interface implementation to manage Calico
type Certificates ¶
type Certificates struct { CACert string CertManager certificate.Manager ClusterSpec *config.ClusterSpec }
Certificates is the Component implementation to manage all k0s certs
func (*Certificates) Init ¶
func (c *Certificates) Init() error
Init initializes the certificate component
func (*Certificates) Run ¶
func (c *Certificates) Run() error
Run does nothing, the cert component only needs to be initialized
func (*Certificates) Stop ¶
func (c *Certificates) Stop() error
Stop does nothing, the cert component is not constantly running
type ControllerManager ¶
type ControllerManager struct { ClusterConfig *config.ClusterConfig LogLevel string // contains filtered or unexported fields }
ControllerManager implement the component interface to run kube scheduler
func (*ControllerManager) Healthy ¶
func (a *ControllerManager) Healthy() error
Health-check interface
func (*ControllerManager) Init ¶
func (a *ControllerManager) Init() error
Init extracts the needed binaries
func (*ControllerManager) Run ¶
func (a *ControllerManager) Run() error
Run runs kube ControllerManager
func (*ControllerManager) Stop ¶
func (a *ControllerManager) Stop() error
Stop stops ControllerManager
type CoreDNS ¶
type CoreDNS struct {
// contains filtered or unexported fields
}
CoreDNS is the component implementation to manage CoreDNS
func NewCoreDNS ¶
func NewCoreDNS(clusterConfig *config.ClusterConfig) (*CoreDNS, error)
NewCoreDNS creates new instance of CoreDNS component
type DefaultPSP ¶
type DefaultPSP struct {
// contains filtered or unexported fields
}
DefaultPSP implements system RBAC reconciler
It always creates two sets of PSP rules: - 00-k0s-privileged: allows "privileged" stuff (host namespaces, privileged etc.) to be running - 99-k0s-restricted: more restricted rules, usually suitable for "normal" workloads
Depending on user config, we select either of the above rule sets to be the default
func NewDefaultPSP ¶
func NewDefaultPSP(clusterSpec *config.ClusterSpec) (*DefaultPSP, error)
NewDefaultPSP creates new system level RBAC reconciler
type Etcd ¶
type Etcd struct { Config *config.EtcdConfig Join bool JoinClient *v1beta1.JoinClient CertManager certificate.Manager LogLevel string // contains filtered or unexported fields }
Etcd implement the component interface to run etcd
type FsManifestsSaver ¶
type FsManifestsSaver struct {
// contains filtered or unexported fields
}
FsManifestsSaver saves all given manifests under the specified root dir
func NewManifestsSaver ¶
func NewManifestsSaver(dir string) (*FsManifestsSaver, error)
NewManifestsSaver builds new filesystem manifests saver
type HelmAddons ¶
type HelmAddons struct { Client clientset.ChartV1Beta1Interface ClusterConfig *k0sv1beta1.ClusterConfig L *logrus.Entry // contains filtered or unexported fields }
Helm watch for Chart crd
func NewHelmAddons ¶
func NewHelmAddons(c *k0sv1beta1.ClusterConfig, s manifestsSaver) *HelmAddons
NewHelmAddons builds new HelmAddons
func (*HelmAddons) CrdControlLoop ¶
func (h *HelmAddons) CrdControlLoop()
type K0SControlAPI ¶
type K0SControlAPI struct { ConfigPath string ClusterConfig *config.ClusterConfig // contains filtered or unexported fields }
K0SControlAPI implements the k0s control API component
func (*K0SControlAPI) Healthy ¶
func (m *K0SControlAPI) Healthy() error
Healthy for health-check interface
func (*K0SControlAPI) Run ¶
func (m *K0SControlAPI) Run() error
Run runs k0s control api as separate process
type Kine ¶
type Kine struct { Config *config.KineConfig // contains filtered or unexported fields }
Kine implement the component interface to run kine
type Konnectivity ¶
type Konnectivity struct { ClusterConfig *config.ClusterConfig LogLevel string // contains filtered or unexported fields }
Konnectivity implement the component interface of konnectivity server
type KubeProxy ¶
type KubeProxy struct {
// contains filtered or unexported fields
}
KubeProxy is the compoennt implementation to manage kube-proxy
func NewKubeProxy ¶
func NewKubeProxy(clusterSpec *config.ClusterConfig) (*KubeProxy, error)
NewKubeProxy creates new KubeProxy component
type KubeletConfig ¶
type KubeletConfig struct {
// contains filtered or unexported fields
}
KubeletConfig is the reconciler for generic kubelet configs
func NewKubeletConfig ¶
func NewKubeletConfig(clusterSpec *config.ClusterSpec) (*KubeletConfig, error)
NewKubeletConfig creates new KubeletConfig reconciler
func (*KubeletConfig) Run ¶
func (k *KubeletConfig) Run() error
Run dumps the needed manifest objects
func (*KubeletConfig) Stop ¶
func (k *KubeletConfig) Stop() error
Stop does nothign, nothing actually running
type MetricServer ¶
type MetricServer struct {
// contains filtered or unexported fields
}
MetricServer is the reconciler implementation for metrics server
func NewMetricServer ¶
func NewMetricServer(clusterConfig *config.ClusterConfig) (*MetricServer, error)
NewMetricServer creates new MetricServer reconciler
type Scheduler ¶
type Scheduler struct { ClusterConfig *config.ClusterConfig LogLevel string // contains filtered or unexported fields }
Scheduler implement the component interface to run kube scheduler
type SystemRBAC ¶
type SystemRBAC struct { }
SystemRBAC implements system RBAC reconciler
func NewSystemRBAC ¶
func NewSystemRBAC(clusterSpec *config.ClusterSpec) (*SystemRBAC, error)
NewSystemRBAC creates new system level RBAC reconciler
func (*SystemRBAC) Run ¶
func (s *SystemRBAC) Run() error
Run reconciles the k0s related system RBAC rules