mirror of
https://github.com/siderolabs/talos.git
synced 2025-09-14 18:31:10 +02:00
Sample: ``` ID ALIASES addressspecs.net.talos.dev addressspec as addressstatuses.net.talos.dev address addresses addressstatus as affiliates.cluster.talos.dev affiliate apicertificates.secrets.talos.dev apicertificate ac acs certsans.secrets.talos.dev certsan csan csans cpustats.perf.talos.dev cpustat cpus discoveryconfigs.cluster.talos.dev discoveryconfig dc dcs endpoints.kubernetes.talos.dev endpoint etcdrootsecrets.secrets.talos.dev etcdrootsecret ers etcdsecrets.secrets.talos.dev etcdsecret es etcfilespecs.files.talos.dev etcfilespec efs etcfilestatuses.files.talos.dev etcfilestatus efs hardwareaddresses.net.talos.dev hardwareaddress ha has hostnamespecs.net.talos.dev hostnamespec hs hostnamestatuses.net.talos.dev hostname hostnamestatus hs identities.cluster.talos.dev identity kernelparamdefaultspecs.runtime.talos.dev kernelparamdefaultspec kpds kernelparamspecs.runtime.talos.dev kernelparamspec kps kernelparamstatuses.runtime.talos.dev sysctls kernelparameters kernelparams kernelparamstatus kps kubeletconfigs.kubernetes.talos.dev kubeletconfig kc kcs kubeletsecrets.secrets.talos.dev kubeletsecret ks kubeletspecs.kubernetes.talos.dev kubeletspec ks kubernetescontrolplaneconfigs.config.talos.dev kubernetescontrolplaneconfig kcpc kcpcs kubernetesrootsecrets.secrets.talos.dev kubernetesrootsecret krs kubernetessecrets.secrets.talos.dev kubernetessecret ks kubespanconfigs.kubespan.talos.dev kubespanconfig ksc kscs kubespanendpoints.kubespan.talos.dev kubespanendpoint kse kses kubespanidentities.kubespan.talos.dev kubespanidentity ksi ksis kubespanpeerspecs.kubespan.talos.dev kubespanpeerspec ksps kubespanpeerstatuses.kubespan.talos.dev kubespanpeerstatus ksps linkrefreshes.net.talos.dev linkrefresh lr lrs linkspecs.net.talos.dev linkspec ls linkstatuses.net.talos.dev link links linkstatus ls machineconfigs.config.talos.dev machineconfig mc mcs machinetypes.config.talos.dev machinetype mt mts manifests.kubernetes.talos.dev manifest manifeststatuses.kubernetes.talos.dev manifeststatus ms members.cluster.talos.dev member memorystats.perf.talos.dev memorystat ms mountstatuses.runtime.talos.dev mounts mountstatus ms namespaces.meta.cosi.dev ns namespace networkstatuses.net.talos.dev netstatus netstatuses networkstatus ns nodeaddresses.net.talos.dev nodeaddress na nas nodeaddressfilters.net.talos.dev nodeaddressfilter naf nafs nodeipconfigs.kubernetes.talos.dev nodeipconfig nipc nipcs nodeips.kubernetes.talos.dev nodeip nip nips nodenames.kubernetes.talos.dev nodename operatorspecs.net.talos.dev operatorspec os osrootsecrets.secrets.talos.dev osrootsecret osrs resolverspecs.net.talos.dev resolverspec rs resolverstatuses.net.talos.dev resolvers resolverstatus rs resourcedefinitions.meta.cosi.dev resourcedefinition rd rds routespecs.net.talos.dev routespec rs routestatuses.net.talos.dev route routes routestatus rs secretstatuses.kubernetes.talos.dev secretstatus ss services.v1alpha1.talos.dev svc service staticpods.kubernetes.talos.dev staticpod sp sps staticpodstatuses.kubernetes.talos.dev podstatus staticpodstatus sps timeserverspecs.net.talos.dev timeserverspec tss timeserverstatuses.net.talos.dev timeserver timeservers timeserverstatus tss timestatuses.v1alpha1.talos.dev timestatus ts ``` Signed-off-by: Andrey Smirnov <andrey.smirnov@talos-systems.com>
92 lines
2.3 KiB
Go
92 lines
2.3 KiB
Go
// This Source Code Form is subject to the terms of the Mozilla Public
|
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
package runtime
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/cosi-project/runtime/pkg/resource"
|
|
"github.com/cosi-project/runtime/pkg/resource/meta"
|
|
)
|
|
|
|
// MountStatusType is type of Mount resource.
|
|
const MountStatusType = resource.Type("MountStatuses.runtime.talos.dev")
|
|
|
|
// MountStatus resource holds defined sysctl flags status.
|
|
type MountStatus struct {
|
|
md resource.Metadata
|
|
spec MountStatusSpec
|
|
}
|
|
|
|
// MountStatusSpec describes status of the defined sysctls.
|
|
type MountStatusSpec struct {
|
|
Source string `yaml:"source"`
|
|
Target string `yaml:"target"`
|
|
FilesystemType string `yaml:"filesystemType"`
|
|
Options []string `yaml:"options"`
|
|
}
|
|
|
|
// NewMountStatus initializes a MountStatus resource.
|
|
func NewMountStatus(namespace resource.Namespace, id resource.ID) *MountStatus {
|
|
r := &MountStatus{
|
|
md: resource.NewMetadata(namespace, MountStatusType, id, resource.VersionUndefined),
|
|
spec: MountStatusSpec{},
|
|
}
|
|
|
|
r.md.BumpVersion()
|
|
|
|
return r
|
|
}
|
|
|
|
// Metadata implements resource.Resource.
|
|
func (r *MountStatus) Metadata() *resource.Metadata {
|
|
return &r.md
|
|
}
|
|
|
|
// Spec implements resource.Resource.
|
|
func (r *MountStatus) Spec() interface{} {
|
|
return r.spec
|
|
}
|
|
|
|
func (r *MountStatus) String() string {
|
|
return fmt.Sprintf("runtime.MountStatus.(%q)", r.md.ID())
|
|
}
|
|
|
|
// DeepCopy implements resource.Resource.
|
|
func (r *MountStatus) DeepCopy() resource.Resource {
|
|
return &MountStatus{
|
|
md: r.md,
|
|
spec: r.spec,
|
|
}
|
|
}
|
|
|
|
// ResourceDefinition implements meta.ResourceDefinitionProvider interface.
|
|
func (r *MountStatus) ResourceDefinition() meta.ResourceDefinitionSpec {
|
|
return meta.ResourceDefinitionSpec{
|
|
Type: MountStatusType,
|
|
Aliases: []resource.Type{"mounts"},
|
|
DefaultNamespace: NamespaceName,
|
|
PrintColumns: []meta.PrintColumn{
|
|
{
|
|
Name: "Source",
|
|
JSONPath: `{.source}`,
|
|
},
|
|
{
|
|
Name: "Target",
|
|
JSONPath: `{.target}`,
|
|
},
|
|
{
|
|
Name: "Filesystem Type",
|
|
JSONPath: `{.filesystemType}`,
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
// TypedSpec allows to access the MountStatusSpec with the proper type.
|
|
func (r *MountStatus) TypedSpec() *MountStatusSpec {
|
|
return &r.spec
|
|
}
|