cubecos

package
v0.0.1-dev-2425a6c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 6, 2025 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TuningPolicyFile = "/etc/policies/tuning/tuning1_0.yml"

	// private tunings
	CubeSysHa                = "cubesys.ha"
	CubeSysController        = "cubesys.controller"
	CubeSysControllerVip     = "cubesys.control.vip"
	CubeSysManagementNetwork = "cubesys.management"
	CubeNetIfAddrPrefix      = "net.if.addr."
	NetIfAddrEth0            = "net.if.addr.eth0"

	// public tunings
	BarbicanDebugEnabled        = "barbican.debug.enabled"
	CephDebugEnabled            = "ceph.debug.enabled"
	CephMirrorMetaSync          = "ceph.mirror.meta.sync"
	CinderBackupAccount         = "cinder.backup.account"
	CinderBackupEndpoint        = "cinder.backup.endpoint"
	CinderBackupOverride        = "cinder.backup.override"
	CinderBackupPool            = "cinder.backup.pool"
	CinderBackupSecret          = "cinder.backup.secret"
	CinderBackupType            = "cinder.backup.type"
	CinderDebugEnabled          = "cinder.debug.enabled"
	CinderExternalAccount       = "cinder.external.%d.account"
	CinderExternalDriver        = "cinder.external.%d.driver"
	CinderExternalEndpoint      = "cinder.external.%d.endpoint"
	CinderExternalName          = "cinder.external.%d.name"
	CinderExternalPool          = "cinder.external.%d.pool"
	CinderExternalSecret        = "cinder.external.%d.secret"
	CubesysAlertLevel           = "cubesys.alert.level"
	CubesysAlertLevelS          = "cubesys.alert.level.%s"
	CubesysConntableMax         = "cubesys.conntable.max"
	CubesysLogDefaultRetention  = "cubesys.log.default.retention"
	CubesysProviderExtra        = "cubesys.provider.extra"
	CyborgDebugEnabled          = "cyborg.debug.enabled"
	DebugEnableCoreDumpS        = "debug.enable_core_dump.%s"
	DebugEnableKdump            = "debug.enable_kdump"
	DebugLevelS                 = "debug.level.%s"
	DebugMaxCoreDump            = "debug.max_core_dump"
	DesignateDebugEnabled       = "designate.debug.enabled"
	GlanceDebugEnabled          = "glance.debug.enabled"
	GlanceExportRp              = "glance.export.rp"
	HeatDebugEnabled            = "heat.debug.enabled"
	InfluxdbCuratorRp           = "influxdb.curator.rp"
	IronicDebugEnabled          = "ironic.debug.enabled"
	IronicDeployServer          = "ironic.deploy.server"
	KapacitorAlertCheckEnabled  = "kapacitor.alert.check.enabled"
	KapacitorAlertCheckEventId  = "kapacitor.alert.check.eventid"
	KapacitorAlertCheckInterval = "kapacitor.alert.check.interval"
	KapacitorAlertExtraPrefix   = "kapacitor.alert.extra.prefix"
	KapacitorAlertFlowBase      = "kapacitor.alert.flow.base"
	KapacitorAlertFlowThreshold = "kapacitor.alert.flow.threshold"
	KapacitorAlertFlowUnit      = "kapacitor.alert.flow.unit"
	KeystoneDebugEnabled        = "keystone.debug.enabled"
	ManilaDebugEnabled          = "manila.debug.enabled"
	ManilaVolumeType            = "manila.volume.type"
	MasakariHostEvacuateAll     = "masakari.host.evacuate_all"
	MasakariWaitPeriod          = "masakari.wait.period"
	MonascaDebugEnabled         = "monasca.debug.enabled"
	MysqlBackupCuratorRp        = "mysql.backup.curator.rp"
	NetIfMtuName                = "net.if.mtu.<name>"
	NetIpv4TcpSyncookies        = "net.ipv4.tcp_syncookies"
	NetLacpDefaultRate          = "net.lacp.default.rate"
	NetLacpDefaultXmit          = "net.lacp.default.xmit"
	NeutronDebugEnabled         = "neutron.debug.enabled"
	NovaControlHostMemory       = "nova.control.host.memory"
	NovaControlHostVcpu         = "nova.control.host.vcpu"
	NovaDebugEnabled            = "nova.debug.enabled"
	NovaGpuType                 = "nova.gpu.type"
	NovaOvercommitCpuRatio      = "nova.overcommit.cpu.ratio"
	NovaOvercommitDiskRatio     = "nova.overcommit.disk.ratio"
	NovaOvercommitRamRatio      = "nova.overcommit.ram.ratio"
	NtpDebugEnabled             = "ntp.debug.enabled"
	OctaviaDebugEnabled         = "octavia.debug.enabled"
	OctaviaHa                   = "octavia.ha"
	OpensearchCuratorRp         = "opensearch.curator.rp"
	OpensearchHeapSize          = "opensearch.heap.size"
	SenlinDebugEnabled          = "senlin.debug.enabled"
	SkylineDebugEnabled         = "skyline.debug.enabled"
	SnapshotApplyAction         = "snapshot.apply.action"
	SnapshotApplyPolicyIgnore   = "snapshot.apply.policy.ignore"
	SshdBindToAllInterfaces     = "sshd.bind_to_all_interfaces"
	SshdSessionInactivity       = "sshd.session.inactivity"
	TimeTimezone                = "time.timezone"
	UpdateSecurityAutoUpdate    = "update.security.autoupdate"
	WatcherDebugEnabled         = "watcher.debug.enabled"

	// setting sys
	SysProductDescription = "sys.product.description"
	SysProductVersion     = "sys.product.version"
)

Variables

View Source
var (
	OrderSensitiveServices = []definition.Service{
		{
			Name:     "clusterLink",
			Category: "core",
			Modules: []definition.Module{
				{Name: "link", IsAutoRepairable: false},
				{Name: "clock", IsAutoRepairable: true},
				{Name: "dns", IsAutoRepairable: false},
			},
		},
		{
			Name:     "clusterSys",
			Category: "core",
			Modules: []definition.Module{
				{Name: "bootstrap", IsAutoRepairable: false},
				{Name: "license", IsAutoRepairable: false},
			},
		},
		{
			Name:     "clusterSettings",
			Category: "core",
			Modules: []definition.Module{
				{Name: "etcd", IsAutoRepairable: true},
				{Name: "nodelist", IsAutoRepairable: false},
			},
		},
		{
			Name:     "haCluster",
			Category: "core",
			Modules: []definition.Module{
				{Name: "hacluster", IsAutoRepairable: true},
			},
		},
		{
			Name:     "msgQueue",
			Category: "core",
			Modules: []definition.Module{
				{Name: "rabbitmq", IsAutoRepairable: true},
			},
		},
		{
			Name:     "iaasDb",
			Category: "core",
			Modules: []definition.Module{
				{Name: "mysql", IsAutoRepairable: true},
				{Name: "mongodb", IsAutoRepairable: true},
			},
		},
		{
			Name:     "virtualIp",
			Category: "core",
			Modules: []definition.Module{
				{Name: "vip", IsAutoRepairable: true},
				{Name: "haproxy_ha", IsAutoRepairable: true},
			},
		},
		{
			Name:     "storage",
			Category: "storage",
			Modules: []definition.Module{
				{Name: "ceph", IsAutoRepairable: false},
				{Name: "ceph_mon", IsAutoRepairable: true},
				{Name: "ceph_mgr", IsAutoRepairable: true},
				{Name: "ceph_mds", IsAutoRepairable: true},
				{Name: "ceph_osd", IsAutoRepairable: true},
				{Name: "ceph_rgw", IsAutoRepairable: true},
				{Name: "rbd_target", IsAutoRepairable: false},
			},
		},
		{
			Name:     "apiService",
			Category: "core",
			Modules: []definition.Module{
				{Name: "haproxy", IsAutoRepairable: true},
				{Name: "httpd", IsAutoRepairable: true},
				{Name: "skyline", IsAutoRepairable: true},
				{Name: "lmi", IsAutoRepairable: true},
				{Name: "memcache", IsAutoRepairable: true},
			},
		},
		{
			Name:     "singleSignOn",
			Category: "core",
			Modules: []definition.Module{
				{Name: "k3s", IsAutoRepairable: true},
				{Name: "keycloak", IsAutoRepairable: true},
			},
		},
		{
			Name:     "network",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "neutron", IsAutoRepairable: true},
			},
		},
		{
			Name:     "compute",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "nova", IsAutoRepairable: true},
				{Name: "cyborg", IsAutoRepairable: true},
			},
		},
		{
			Name:     "bareMetal",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "ironic", IsAutoRepairable: true},
			},
		},
		{
			Name:     "image",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "glance", IsAutoRepairable: true},
			},
		},
		{
			Name:     "blockStor",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "cinder", IsAutoRepairable: true},
			},
		},
		{
			Name:     "fileStor",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "manila", IsAutoRepairable: true},
			},
		},
		{
			Name:     "objectStor",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "swift", IsAutoRepairable: false},
			},
		},
		{
			Name:     "orchestration",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "heat", IsAutoRepairable: true},
			},
		},
		{
			Name:     "lbaas",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "octavia", IsAutoRepairable: true},
			},
		},
		{
			Name:     "dnsaas",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "designate", IsAutoRepairable: true},
			},
		},
		{
			Name:     "k8saas",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "rancher", IsAutoRepairable: false},
			},
		},
		{
			Name:     "instanceHa",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "masakari", IsAutoRepairable: true},
			},
		},
		{
			Name:     "businessLogic",
			Category: "cloud computing",
			Modules: []definition.Module{
				{Name: "senlin", IsAutoRepairable: true},
				{Name: "watcher", IsAutoRepairable: true},
			},
		},
		{
			Name:     "dataPipe",
			Category: "infrascope",
			Modules: []definition.Module{
				{Name: "zookeeper", IsAutoRepairable: true},
				{Name: "kafka", IsAutoRepairable: true},
			},
		},
		{
			Name:     "metrics",
			Category: "infrascope",
			Modules: []definition.Module{
				{Name: "monasca", IsAutoRepairable: true},
				{Name: "telegraf", IsAutoRepairable: true},
				{Name: "grafana", IsAutoRepairable: true},
			},
		},
		{
			Name:     "logAnalytics",
			Category: "infrascope",
			Modules: []definition.Module{
				{Name: "filebeat", IsAutoRepairable: true},
				{Name: "auditbeat", IsAutoRepairable: true},
				{Name: "logstash", IsAutoRepairable: true},
				{Name: "opensearch", IsAutoRepairable: true},
				{Name: "opensearch-dashboards", IsAutoRepairable: true},
			},
		},
		{
			Name:     "notifications",
			Category: "infrascope",
			Modules: []definition.Module{
				{Name: "influxdb", IsAutoRepairable: true},
				{Name: "kapacitor", IsAutoRepairable: true},
			},
		},
		{
			Name:               "node",
			IsInternalViewOnly: true,
			Modules: []definition.Module{
				{Name: "node", IsAutoRepairable: false},
			},
		},
	}

	Modules           = map[string]definition.Module{}
	ModuleToService   = map[string]string{}
	ServiceToCategory = map[string]string{}
	ServiceToModules  = map[string][]definition.Module{}
)
View Source
var (
	BarbicanDebugEnabledSpec = &definition.TuningSpec{
		Name:        BarbicanDebugEnabled,
		Description: "Set to true to enable barbican verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllGeneralRoles,
	}
	CephDebugEnabledSpec = &definition.TuningSpec{
		Name:        CephDebugEnabled,
		Description: "Set to true to enable ceph debug logs.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllGeneralRoles,
	}
	CephMirrorMetaSyncSpec = &definition.TuningSpec{
		Name:        CephMirrorMetaSync,
		Description: "Set to true to enable automatically volume metadata sync.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: true,
		},
		Roles: definition.ControlRoles,
	}
	CinderBackupAccountSpec = &definition.TuningSpec{
		Name:        CinderBackupAccount,
		Description: "Set cinder backup storage account.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllGeneralRoles,
	}
	CinderBackupEndpointSpec = &definition.TuningSpec{
		Name:        CinderBackupEndpoint,
		Description: "Set cinder backup storage endpoint.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderBackupOverrideSpec = &definition.TuningSpec{
		Name:        CinderBackupOverride,
		Description: "Enable override cinder backup configurations.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	CinderBackupPoolSpec = &definition.TuningSpec{
		Name:        CinderBackupPool,
		Description: "Set cinder backup storage pool.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderBackupSecretSpec = &definition.TuningSpec{
		Name:        CinderBackupSecret,
		Description: "Set cinder backup storage account secret.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderBackupTypeSpec = &definition.TuningSpec{
		Name:        CinderBackupType,
		Description: "Set cinder backup storage type <cube-storage|cube-swift>.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderDebugEnabledSpec = &definition.TuningSpec{
		Name:        CinderDebugEnabled,
		Description: "Set to true to enable cinder verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	CinderExternalAccountSpec = &definition.TuningSpec{
		Name:        CinderExternalAccount,
		Description: "Set cinder external storage account.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderExternalDriverSpec = &definition.TuningSpec{
		Name:        CinderExternalDriver,
		Description: "Set cinder external storage type name <cube|purestorage>.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderExternalEndpointSpec = &definition.TuningSpec{
		Name:        CinderExternalEndpoint,
		Description: "Set cinder external storage endpoint.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderExternalNameSpec = &definition.TuningSpec{
		Name:        CinderExternalName,
		Description: "Set cinder external storage rule name.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderExternalPoolSpec = &definition.TuningSpec{
		Name:        CinderExternalPool,
		Description: "Set cinder external storage pool.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CinderExternalSecretSpec = &definition.TuningSpec{
		Name:        CinderExternalSecret,
		Description: "Set cinder external storage account secret.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CubesysAlertLevelSpec = &definition.TuningSpec{
		Name:        CubesysAlertLevel,
		Description: "Set health alert sensible level. (0: default, 1: highly sensitive)",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     2147483647,
		},
		Roles: definition.AllRoles,
	}
	CubesysAlertLevelSSpec = &definition.TuningSpec{
		Name:        CubesysAlertLevelS,
		Description: "Set health alert sensible level for service %s. (0: default, 1: highly sensitive)",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     2147483647,
		},
		Roles: definition.AllRoles,
	}
	CubesysConntableMaxSpec = &definition.TuningSpec{
		Name:        CubesysConntableMax,
		Description: "Set max connection table size.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 262144,
			Min:     0,
			Max:     2147483647,
		},
		Roles: definition.AllRoles,
	}
	CubesysLogDefaultRetentionSpec = &definition.TuningSpec{
		Name:        CubesysLogDefaultRetention,
		Description: "Set log file retention policy in days.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 14,
			Min:     0,
			Max:     365,
		},
		Roles: definition.AllRoles,
	}
	CubesysProviderExtraSpec = &definition.TuningSpec{
		Name:        CubesysProviderExtra,
		Description: "Set extra provider interfaces ('pvd-' prefix and <= 15 chars) [IF.2:pvd-xxx,eth2:pvd-yyy,...].",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.AllRoles,
	}
	CyborgDebugEnabledSpec = &definition.TuningSpec{
		Name:        CyborgDebugEnabled,
		Description: "Set to true to enable cyborg verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	DebugEnableCoreDumpSSpec = &definition.TuningSpec{
		Name:        DebugEnableCoreDumpS,
		Description: "Enable core dump for process %s",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	DebugEnableKdumpSpec = &definition.TuningSpec{
		Name:        DebugEnableKdump,
		Description: "Enable kdump to collect dump from kernel panic",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	DebugLevelSSpec = &definition.TuningSpec{
		Name:        DebugLevelS,
		Description: "Set debug level for process %s",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     9,
		},
		Roles: definition.AllRoles,
	}
	DebugMaxCoreDumpSpec = &definition.TuningSpec{
		Name:        DebugMaxCoreDump,
		Description: "Set the total number of core files before oldest are removed",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     999,
		},
		Roles: definition.AllRoles,
	}
	DesignateDebugEnabledSpec = &definition.TuningSpec{
		Name:        DesignateDebugEnabled,
		Description: "Set to true to enable designate verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.ControlRoles,
	}
	GlanceDebugEnabledSpec = &definition.TuningSpec{
		Name:        GlanceDebugEnabled,
		Description: "Set to true to enable glance verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	GlanceExportRpSpec = &definition.TuningSpec{
		Name:        GlanceExportRp,
		Description: "glance export retention policy in copies.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 3,
			Min:     0,
			Max:     255,
		},
		Roles: definition.AllRoles,
	}
	HeatDebugEnabledSpec = &definition.TuningSpec{
		Name:        HeatDebugEnabled,
		Description: "Set to true to enable heat verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	InfluxdbCuratorRpSpec = &definition.TuningSpec{
		Name:        InfluxdbCuratorRp,
		Description: "influxdb curator retention policy in days.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 7,
			Min:     0,
			Max:     365,
		},
		Roles: definition.AllRoles,
	}
	IronicDebugEnabledSpec = &definition.TuningSpec{
		Name:        IronicDebugEnabled,
		Description: "Set to true to enable ironic verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllGeneralRoles,
	}
	IronicDeployServerSpec = &definition.TuningSpec{
		Name:        IronicDeployServer,
		Description: "Set to true to enable ironic deploy server (dhcp/tftp/pxe/http).",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllGeneralRoles,
	}
	KapacitorAlertCheckEnabledSpec = &definition.TuningSpec{
		Name:        KapacitorAlertCheckEnabled,
		Description: "Set true to enable kapacitor alert check.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.ControlRoles,
	}
	KapacitorAlertCheckEventIdSpec = &definition.TuningSpec{
		Name:        KapacitorAlertCheckEventId,
		Description: "Set kapacitor alert check eventid.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "SYS00002W",
		},
		Roles: definition.ControlRoles,
	}
	KapacitorAlertCheckIntervalSpec = &definition.TuningSpec{
		Name:        KapacitorAlertCheckInterval,
		Description: "Set kapacitor alert check interval (default to 60m).",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "60m",
		},
		Roles: definition.ControlRoles,
	}
	KapacitorAlertExtraPrefixSpec = &definition.TuningSpec{
		Name:        KapacitorAlertExtraPrefix,
		Description: "Set kapacitor alert message prefix.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "Cube",
		},
		Roles: definition.ControlRoles,
	}
	KapacitorAlertFlowBaseSpec = &definition.TuningSpec{
		Name:        KapacitorAlertFlowBase,
		Description: "Set kapacitor alert base for abnormal flow.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "7d",
		},
		Roles: definition.ControlRoles,
	}
	KapacitorAlertFlowThresholdSpec = &definition.TuningSpec{
		Name:        KapacitorAlertFlowThreshold,
		Description: "Set kapacitor alert threshold for abnormal flow.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 30,
			Min:     0,
			Max:     65535,
		},
		Roles: definition.ControlRoles,
	}
	KapacitorAlertFlowUnitSpec = &definition.TuningSpec{
		Name:        KapacitorAlertFlowUnit,
		Description: "Set kapacitor alert unit for abnormal flow.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "5m",
		},
		Roles: definition.ControlRoles,
	}
	KeystoneDebugEnabledSpec = &definition.TuningSpec{
		Name:        KeystoneDebugEnabled,
		Description: "Set to true to enable keystone verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	ManilaDebugEnabledSpec = &definition.TuningSpec{
		Name:        ManilaDebugEnabled,
		Description: "Set to true to enable manila verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	ManilaVolumeTypeSpec = &definition.TuningSpec{
		Name:        ManilaVolumeType,
		Description: "Set manila backend volume type.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "CubeStorage",
		},
		Roles: definition.AllRoles,
	}
	MasakariHostEvacuateAllSpec = &definition.TuningSpec{
		Name:        MasakariHostEvacuateAll,
		Description: "Set to true to enable evacuate all instances when host goes down.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: true,
		},
		Roles: definition.AllRoles,
	}
	MasakariWaitPeriodSpec = &definition.TuningSpec{
		Name:        MasakariWaitPeriod,
		Description: "Set wait period after service update",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     99999,
		},
		Roles: definition.ControlRoles,
	}
	MonascaDebugEnabledSpec = &definition.TuningSpec{
		Name:        MonascaDebugEnabled,
		Description: "Set to true to enable monasca verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	MysqlBackupCuratorRpSpec = &definition.TuningSpec{
		Name:        MysqlBackupCuratorRp,
		Description: "mysql backup retention policy in weeks.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 14,
			Min:     0,
			Max:     52,
		},
		Roles: definition.AllRoles,
	}
	NetIfMtuNameSpec = &definition.TuningSpec{
		Name:        NetIfMtuName,
		Description: "Set interface MTU (MTU of parent interface must be greater than its VLAN interface).",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 1500,
			Min:     68,
			Max:     65536,
		},
		Roles: definition.AllRoles,
	}
	NetIpv4TcpSyncookiesSpec = &definition.TuningSpec{
		Name:        NetIpv4TcpSyncookies,
		Description: "Turn on the Linux SYN cookies implementation.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: true,
		},
		Roles: definition.AllRoles,
	}
	NetLacpDefaultRateSpec = &definition.TuningSpec{
		Name:        NetLacpDefaultRate,
		Description: "Set default LACP rate (fast/slow).",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "fast",
		},
		Roles: definition.AllRoles,
	}
	NetLacpDefaultXmitSpec = &definition.TuningSpec{
		Name:        NetLacpDefaultXmit,
		Description: "Set default LACP transmit hash policy (layer2/layer2+3/layer3+4).",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "layer3+4",
		},
		Roles: definition.AllRoles,
	}
	NeutronDebugEnabledSpec = &definition.TuningSpec{
		Name:        NeutronDebugEnabled,
		Description: "Set to true to enable neutron verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	NovaControlHostMemorySpec = &definition.TuningSpec{
		Name:        NovaControlHostMemory,
		Description: "Amount of memory in MB to reserve for the control host.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     524288,
		},
		Roles: definition.ComputeRoles,
	}
	NovaControlHostVcpuSpec = &definition.TuningSpec{
		Name:        NovaControlHostVcpu,
		Description: "Amount of vcpu to reserve for the control host.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     128,
		},
		Roles: []*definition.Role{definition.GetControlConvergeRole(), definition.GetEdgeCoreRole()},
	}
	NovaDebugEnabledSpec = &definition.TuningSpec{
		Name:        NovaDebugEnabled,
		Description: "Set to true to enable nova verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	NovaGpuTypeSpec = &definition.TuningSpec{
		Name:        NovaGpuType,
		Description: "Specify a supported gpu type instances would get.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "",
		},
		Roles: definition.ComputeRoles,
		Selector: definition.Selector{
			Enabled: true,
			Labels:  map[string]string{"isGpuEnabled": "true"},
		},
	}
	NovaOvercommitCpuRatioSpec = &definition.TuningSpec{
		Name:        NovaOvercommitCpuRatio,
		Description: "Specify an allowed CPU overcommitted ratio.",
		Limitation: definition.TuningLimitation{
			Type:    "float",
			Default: 16.0,
		},
		Roles: definition.AllRoles,
	}
	NovaOvercommitDiskRatioSpec = &definition.TuningSpec{
		Name:        NovaOvercommitDiskRatio,
		Description: "Specify an allowed disk overcommitted ratio.",
		Limitation: definition.TuningLimitation{
			Type:    "float",
			Default: 1.0,
		},
		Roles: definition.AllRoles,
	}
	NovaOvercommitRamRatioSpec = &definition.TuningSpec{
		Name:        NovaOvercommitRamRatio,
		Description: "Specify an allowed RAM overcommitted ratio.",
		Limitation: definition.TuningLimitation{
			Type:    "float",
			Default: 1.5,
		},
		Roles: definition.AllRoles,
	}
	NtpDebugEnabledSpec = &definition.TuningSpec{
		Name:        NtpDebugEnabled,
		Description: "Set to true to enable ntp verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	OctaviaDebugEnabledSpec = &definition.TuningSpec{
		Name:        OctaviaDebugEnabled,
		Description: "Set to true to enable octavia verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	OctaviaHaSpec = &definition.TuningSpec{
		Name:        OctaviaHa,
		Description: "Set to true to enable octavia HA mode.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	OpensearchCuratorRpSpec = &definition.TuningSpec{
		Name:        OpensearchCuratorRp,
		Description: "opensearch curator retention policy in days.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 7,
			Min:     0,
			Max:     365,
		},
		Roles: definition.AllRoles,
	}
	OpensearchHeapSizeSpec = &definition.TuningSpec{
		Name:        OpensearchHeapSize,
		Description: "Set opensearch heap size in MB.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 1024,
			Min:     256,
			Max:     65536,
		},
		Roles: definition.AllRoles,
	}
	SenlinDebugEnabledSpec = &definition.TuningSpec{
		Name:        SenlinDebugEnabled,
		Description: "Set to true to enable senlin verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	SkylineDebugEnabledSpec = &definition.TuningSpec{
		Name:        SkylineDebugEnabled,
		Description: "Set to true to enable skyline verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	SnapshotApplyActionSpec = &definition.TuningSpec{
		Name:        SnapshotApplyAction,
		Description: "Set snapshot apply action <apply|revert>.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "apply",
		},
		Roles: definition.AllRoles,
	}
	SnapshotApplyPolicyIgnoreSpec = &definition.TuningSpec{
		Name:        SnapshotApplyPolicyIgnore,
		Description: "Set snapshot apply policy ignore <true|false>.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	SshdBindToAllInterfacesSpec = &definition.TuningSpec{
		Name:        SshdBindToAllInterfaces,
		Description: "Set to true to bind sshd to all interfaces.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	SshdSessionInactivitySpec = &definition.TuningSpec{
		Name:        SshdSessionInactivity,
		Description: "Set sshd session inactivity timeout in seconds.",
		Limitation: definition.TuningLimitation{
			Type:    "int",
			Default: 0,
			Min:     0,
			Max:     86400,
		},
		Roles: definition.AllRoles,
	}
	TimeTimezoneSpec = &definition.TuningSpec{
		Name:        TimeTimezone,
		Description: "Set system timezone.",
		Limitation: definition.TuningLimitation{
			Type:    "string",
			Default: "UTC",
		},
		Roles: definition.AllRoles,
	}
	UpdateSecurityAutoUpdateSpec = &definition.TuningSpec{
		Name:        UpdateSecurityAutoUpdate,
		Description: "Set to true to enable security autoupdate.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
	WatcherDebugEnabledSpec = &definition.TuningSpec{
		Name:        WatcherDebugEnabled,
		Description: "Set to true to enable watcher verbose log.",
		Limitation: definition.TuningLimitation{
			Type:    "bool",
			Default: false,
		},
		Roles: definition.AllRoles,
	}
)

Functions

func AcquireTuningLock

func AcquireTuningLock() error

func ApplyTuning

func ApplyTuning(isolatedDir string) error

func ApplyTunings

func ApplyTunings(tunings []definition.Tuning) error

func CheckServiceHealth

func CheckServiceHealth(service definition.Service) error

func CountEvents

func CountEvents(stmt string) (int64, error)

func CreateToken

func CreateToken(user *definition.User) (*gocloak.JWT, error)

func GeDiskLatencyHistoryOfHosts

func GeDiskLatencyHistoryOfHosts(readStmt, writeStmt string) (*definition.StorageTimeSeries, error)

func GetControllerVirtualIp

func GetControllerVirtualIp(mgmtNet string) (string, error)

func GetCpuAverageOfHosts

func GetCpuAverageOfHosts(cpuStats []definition.ComputeStatistic) definition.ComputeStatistic

func GetCpuHistoryOfHost

func GetCpuHistoryOfHost(stmt string) ([]definition.TimeValue, error)

func GetCpuHistoryOfVm

func GetCpuHistoryOfVm(entityId string, period definition.Period) ([]definition.TimeValue, error)

func GetCpuSummaryOfHost

func GetCpuSummaryOfHost(hostname string) (*definition.ComputeStatistic, error)

func GetCpuSummaryOfHosts

func GetCpuSummaryOfHosts(stmt string) (*definition.ComputeStatistic, error)

func GetCpuUsageRankOfHosts

func GetCpuUsageRankOfHosts(stmt string) (*definition.MetricRank, error)

func GetCpuUsageRankOfVms

func GetCpuUsageRankOfVms(stmt string) (*definition.MetricRank, error)

func GetDataCenterName

func GetDataCenterName() (string, error)

func GetDataCenterVersion

func GetDataCenterVersion() (string, error)

func GetDiskIopsHistoryOfHosts

func GetDiskIopsHistoryOfHosts(readStmt, writeStmt string) (*definition.StorageTimeSeries, error)

func GetDiskReadIopsHistoryOfVm

func GetDiskReadIopsHistoryOfVm(entityId, device string) ([]definition.TimeValue, error)

func GetDiskReadIopsRankOfVms

func GetDiskReadIopsRankOfVms(stmt string) (*definition.MetricRank, error)

func GetDiskStorageBandwidthHistory

func GetDiskStorageBandwidthHistory(readStmt, writeStmt string) (*definition.StorageTimeSeries, error)

func GetDiskUsageHistoryOfHost

func GetDiskUsageHistoryOfHost(entityId string, period definition.Period) ([]definition.TimeValue, error)

func GetDiskUsageRankOfHosts

func GetDiskUsageRankOfHosts(stmt string) (*definition.MetricRank, error)

func GetDiskWriteIopsHistoryOfVm

func GetDiskWriteIopsHistoryOfVm(entityId, device string) ([]definition.TimeValue, error)

func GetDiskWriteIopsRankOfVms

func GetDiskWriteIopsRankOfVms(stmt string) (*definition.MetricRank, error)

func GetEventFilterConditions

func GetEventFilterConditions(stmt string) ([]string, error)

func GetEventRank

func GetEventRank(stmt string) ([]definition.EventStat, error)

func GetEvents

func GetEvents(stmt string) ([]definition.Event, error)

func GetHostUsage

func GetHostUsage(node *definition.Node) (*definition.HostUsage, error)

func GetManagementIp

func GetManagementIp(mgmtNet string) (string, error)

func GetMemoryAverageOfHosts

func GetMemoryAverageOfHosts(spaceStats []definition.SpaceStatistic) definition.SpaceStatistic

func GetMemoryHistoryOfHost

func GetMemoryHistoryOfHost(entityId string, period definition.Period) ([]definition.TimeValue, error)

func GetMemoryHistoryOfVm

func GetMemoryHistoryOfVm(entityId string, period definition.Period) ([]definition.TimeValue, error)

func GetMemoryUsageRankOfHosts

func GetMemoryUsageRankOfHosts(stmt string) (*definition.MetricRank, error)

func GetMemoryUsageRankOfVms

func GetMemoryUsageRankOfVms(stmt string) (*definition.MetricRank, error)

func GetMemoryUsageSummaryOfHost

func GetMemoryUsageSummaryOfHost(hostname string) (*definition.SpaceStatistic, error)

func GetMemoryUsageSummaryOfHosts

func GetMemoryUsageSummaryOfHosts() (*definition.SpaceStatistic, error)

func GetMgmtNet

func GetMgmtNet() (string, error)

func GetNetworkTrafficInHistoryOfHost

func GetNetworkTrafficInHistoryOfHost(entityId string, period definition.Period) ([]definition.TimeValue, error)

func GetNetworkTrafficInHistoryOfVm

func GetNetworkTrafficInHistoryOfVm(entityId, device string) ([]definition.TimeValue, error)

func GetNetworkTrafficInRankOfHosts

func GetNetworkTrafficInRankOfHosts() (*definition.MetricRank, error)

func GetNetworkTrafficInRankOfVms

func GetNetworkTrafficInRankOfVms(stmt string) (*definition.MetricRank, error)

func GetNetworkTrafficOutHistoryOfHost

func GetNetworkTrafficOutHistoryOfHost(entityId string, period definition.Period) ([]definition.TimeValue, error)

func GetNetworkTrafficOutHistoryOfVm

func GetNetworkTrafficOutHistoryOfVm(entityId, device string) ([]definition.TimeValue, error)

func GetNetworkTrafficOutRankOfHosts

func GetNetworkTrafficOutRankOfHosts() (*definition.MetricRank, error)

func GetNetworkTrafficOutRankOfVms

func GetNetworkTrafficOutRankOfVms(stmt string) (*definition.MetricRank, error)

func GetNodeRole

func GetNodeRole() (string, error)

func GetTuning

func GetTuning(name string) (*definition.Tuning, error)

func GetTuningPolicy

func GetTuningPolicy(filePath string) (*definition.TuningPolicy, error)

func GetTuningValue

func GetTuningValue(name string) (string, error)

func GetUnhealthyServices

func GetUnhealthyServices() ([]definition.Service, error)

func GetVmUsage

func GetVmUsage() (*definition.VmUsage, error)

func ImportClusterLicense

func ImportClusterLicense(licensePath string) error

func ImportNodeLicense

func ImportNodeLicense(licensePath string) error

func IsClusterSetReady

func IsClusterSetReady() bool

func IsEntityTypeValid

func IsEntityTypeValid(t string) bool

func IsEventTypeValid

func IsEventTypeValid(t string) bool

func IsExpectedEmptyStdOut

func IsExpectedEmptyStdOut(err error) bool

func IsGpuEnabled

func IsGpuEnabled() bool

func IsHaEnabled

func IsHaEnabled() (bool, error)

func IsLocalDataCenter

func IsLocalDataCenter(dataCenter string) bool

M2 TODO: Check if the data center is local

func IsMetricReportTypeValid

func IsMetricReportTypeValid(t string) bool

func IsMetricTypeValid

func IsMetricTypeValid(t string) bool

func IsModuleHealthy

func IsModuleHealthy(moduleName string) bool

func IsRepairable

func IsRepairable() bool

func IsRepairing

func IsRepairing() bool

M1 TODO: Waiting for COS developer to implement the /var/run/{markerfile} to check if the data center is repairing.

func IsTuningApplied

func IsTuningApplied(tuning definition.Tuning) error

func IsTuningDeleted

func IsTuningDeleted(tuning definition.Tuning) bool

func IsValidService

func IsValidService(service string) bool

func IsValidServiceAndModule

func IsValidServiceAndModule(service, module string) bool

func ListBuiltInIntegrations

func ListBuiltInIntegrations() []definition.Integration

func ListHypervisors

func ListHypervisors() ([]hypervisors.Hypervisor, error)

func ListLicenses

func ListLicenses() ([]definition.License, error)

func ListNodes

func ListNodes() ([]*definition.Node, error)

func ListTunings

func ListTunings(opts definition.ListTuningOptions) ([]definition.Tuning, error)

func ListTuningsFromOtherNodes

func ListTuningsFromOtherNodes() (map[string][]definition.Tuning, error)

func ReadSettingSys

func ReadSettingSys(settingName string) (string, error)

func ReleaseTuningLock

func ReleaseTuningLock() error

func RepairModule

func RepairModule(moduleName string) error

func RepairServiceHealth

func RepairServiceHealth(service definition.Service) error

func SyncTunings

func SyncTunings()

Types

type DataCenterSummary

type DataCenterSummary struct {
	Usage definition.DataCenterUsage `json:"usage"`
}

func GetDataCenterUsage

func GetDataCenterUsage(hostSummary *HostSummary) (*DataCenterSummary, error)

type Error

type Error struct {
	Type        string   `json:"type"`
	Reason      string   `json:"reason"`
	Nodes       []string `json:"nodes"`
	Description string   `json:"description"`
	Details     string   `json:"details"`
	Log         string   `json:"log"`
}

type Health

type Health struct {
	*definition.DataCenter `json:"dataCenter,omitempty" bson:"dataCenter,omitempty"`
	*Overall               `json:"overall,omitempty" bson:"overall"`
	Services               []definition.Service `json:"services" bson:"services"`
}

func (*Health) CopyEmptyServiceStruct

func (h *Health) CopyEmptyServiceStruct() Health

func (*Health) HasUnhealthyService

func (h *Health) HasUnhealthyService() bool

type HealthCheck

type HealthCheck struct {
	Time   string `json:"time"`
	Status string `json:"status"`
	*Error `json:"error,omitempty"`
}

type HealthStatus

type HealthStatus struct {
	Category string        `json:"category"`
	Name     string        `json:"name"`
	Module   string        `json:"module"`
	History  []HealthCheck `json:"history"`
}

type HostSummary

type HostSummary struct {
	Role   `json:"role"`
	Usages []HostUsage `json:"usages"`
}

func GetHostSummary

func GetHostSummary() (*HostSummary, error)

func (*HostSummary) ListCpuUsages

func (h *HostSummary) ListCpuUsages() []definition.ComputeStatistic

func (*HostSummary) ListMemoryUsages

func (h *HostSummary) ListMemoryUsages() []definition.SpaceStatistic

type HostUsage

type HostUsage struct {
	Role                 string `json:"role"`
	Name                 string `json:"name"`
	Address              string `json:"address"`
	definition.HostUsage `json:"usage"`
}

type Overall

type Overall struct {
	Status status.Details `json:"status,omitempty" bson:"status"`
}

type Role

type Role struct {
	ControlConverged int `json:"controlConverged"`
	Control          int `json:"control"`
	Compute          int `json:"compute"`
	Storage          int `json:"storage"`
}

func GetRoleStatus

func GetRoleStatus() (*Role, error)

type Summary

type Summary struct {
	DataCenter DataCenterSummary `json:"dataCenter"`
	Host       HostSummary       `json:"host"`
	Vm         VmSummary         `json:"vm"`
}

func GetDataCenterSummary

func GetDataCenterSummary() (*Summary, error)

func (*Summary) Bytes

func (s *Summary) Bytes() []byte

type VmStatus

type VmStatus struct {
	Total   int `json:"total"`
	Running int `json:"running"`
	Stopped int `json:"stopped"`
	Suspend int `json:"suspend"`
	Paused  int `json:"paused"`
	Error   int `json:"error"`
}

func GetVmStatus

func GetVmStatus() (*VmStatus, error)

type VmSummary

type VmSummary struct {
	Status             VmStatus `json:"status"`
	definition.VmUsage `json:"usage"`
}

func GetVmSummary

func GetVmSummary() (*VmSummary, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL