talos/internal/pkg/constants/constants.go
Andrey Smirnov ab2917e833
feat(init): implement init gRPC API, forward reboot to init (#579)
This implements insecure over-file-socket gRPC API for init with two
first simplest APIs: reboot and shutdown (poweroff).

File socket is mounted only to `osd` service, so it is the only service
which can access init API. Osd forwards reboot/shutdown already
implemented APIs to init which actually executes these.

This enables graceful shutdown/reboot with service shutdown, sync, etc.

Signed-off-by: Andrey Smirnov <smirnov.andrey@gmail.com>
2019-04-26 23:04:24 +03:00

122 lines
4.0 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 constants
import "github.com/containerd/containerd/defaults"
const (
// KernelParamUserData is the kernel parameter name for specifying the URL
// to the user data.
KernelParamUserData = "talos.userdata"
// KernelParamPlatform is the kernel parameter name for specifying the
// platform.
KernelParamPlatform = "talos.platform"
// NewRoot is the path where the switchroot target is mounted.
NewRoot = "/root"
// BootPartitionLabel is the label of the partition to use for mounting at
// the boot path.
BootPartitionLabel = "ESP"
// BootMountPoint is the label of the partition to use for mounting at
// the boot path.
BootMountPoint = "/boot"
// DataPartitionLabel is the label of the partition to use for mounting at
// the data path.
DataPartitionLabel = "DATA"
// DataMountPoint is the label of the partition to use for mounting at
// the data path.
DataMountPoint = "/var"
// RootPartitionLabel is the label of the partition to use for mounting at
// the root path.
RootPartitionLabel = "ROOT"
// RootMountPoint is the label of the partition to use for mounting at
// the root path.
RootMountPoint = "/"
// PATH defines all locations where executables are stored.
PATH = "/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/opt/cni/bin"
// CNICalico is used to specify Calico CNI.
CNICalico = "calico"
// CNIFlannel is used to specify Flannel CNI.
CNIFlannel = "flannel"
// KubeadmConfig is the path to the kubeadm manifest file.
KubeadmConfig = "/etc/kubernetes/kubeadm-config.yaml"
// KubeadmCACert is the path to the root CA certificate.
KubeadmCACert = "/etc/kubernetes/pki/ca.crt"
// KubeadmCAKey is the path to the root CA private key.
KubeadmCAKey = "/etc/kubernetes/pki/ca.key"
// KubernetesVersion is the enforced target version of the control plane.
KubernetesVersion = "v1.14.1"
// KubernetesImage is the enforced hyperkube image to use for the control plane.
KubernetesImage = "k8s.gcr.io/hyperkube:" + KubernetesVersion
// UserDataPath is the path to the downloaded user data.
UserDataPath = "/run/userdata.yaml"
// UserDataCIData is the volume label for NoCloud cloud-init.
// See https://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html#datasource-nocloud.
UserDataCIData = "cidata"
// UserDataGuestInfo is the name of the VMware guestinfo user data strategy.
UserDataGuestInfo = "guestinfo"
// VMwareGuestInfoUserDataKey is the guestinfo key used to provide a user data file.
VMwareGuestInfoUserDataKey = "talos.userdata"
// AuditPolicyPathInitramfs is the path to the audit-policy.yaml relative to initramfs.
AuditPolicyPathInitramfs = "/etc/kubernetes/audit-policy.yaml"
// EncryptionConfigInitramfsPath is the path to the EncryptionConfig relative to initramfs.
EncryptionConfigInitramfsPath = "/etc/kubernetes/encryptionconfig.yaml"
// EncryptionConfigRootfsPath is the path to the EncryptionConfig relative to rootfs.
EncryptionConfigRootfsPath = "/etc/kubernetes/encryptionconfig.yaml"
// OsdPort is the port for the osd service.
OsdPort = 50000
// TrustdPort is the port for the trustd service.
TrustdPort = 50001
// SystemContainerdNamespace is the Containerd namespace for Talos services.
SystemContainerdNamespace = "system"
// TalosConfigEnvVar is the environment variable for setting the Talos configuration file path.
TalosConfigEnvVar = "TALOSCONFIG"
// InitSocketPath is the path to file socket of init API
InitSocketPath = "/var/lib/init/init.sock"
)
// See https://linux.die.net/man/3/klogctl
const (
// SYSLOG_ACTION_SIZE_BUFFER is a named type argument to klogctl.
// nolint: golint
SYSLOG_ACTION_SIZE_BUFFER = 10
// SYSLOG_ACTION_READ_ALL is a named type argument to klogctl.
// nolint: golint
SYSLOG_ACTION_READ_ALL = 3
)
// Containerd
const (
ContainerdAddress = defaults.DefaultAddress
)