Documentation ¶
Overview ¶
package sidecar contains helpers to build the Container object for Kubernetes to deploy the Dapr sidecar container.
Index ¶
- Constants
- Variables
- func GetAppID(pod metaV1.ObjectMeta) string
- func GetSidecarContainer(cfg ContainerConfig) (*corev1.Container, error)
- func GetTokenVolume() corev1.Volume
- func GetTrustAnchorsAndCertChain(ctx context.Context, kubeClient kubernetes.Interface, namespace string) (string, string, string)
- func GetUnixDomainSocketVolumeMount(pod *corev1.Pod) *corev1.VolumeMount
- func GetVolumeMounts(pod corev1.Pod) []corev1.VolumeMount
- func ParseEnvString(envStr string) []coreV1.EnvVar
- func ParseVolumeMountsString(volumeMountStr string, readOnly bool) []coreV1.VolumeMount
- func PodContainsSidecarContainer(pod *coreV1.Pod) bool
- func ServiceAddress(svc Service, namespace string, clusterDomain string) string
- type Annotations
- func (a Annotations) Exist(key string) bool
- func (a Annotations) GetBoolOrDefault(key string, defaultValue bool) bool
- func (a Annotations) GetInt32(key string) (int32, error)
- func (a Annotations) GetInt32OrDefault(key string, defaultValue int32) int32
- func (a Annotations) GetString(key string) string
- func (a Annotations) GetStringOrDefault(key, defaultValue string) string
- type ContainerConfig
- type PatchOperation
- func AddDaprEnvVarsToContainers(containers map[int]corev1.Container) []PatchOperation
- func AddServiceAccountTokenVolume(containers []corev1.Container) []PatchOperation
- func AddSocketVolumeMountToContainers(containers map[int]corev1.Container, socketVolumeMount *corev1.VolumeMount) []PatchOperation
- func GetEnvPatchOperations(envs []corev1.EnvVar, addEnv []corev1.EnvVar, containerIdx int) []PatchOperation
- func GetVolumeMountPatchOperations(volumeMounts []corev1.VolumeMount, addMounts []corev1.VolumeMount, ...) []PatchOperation
- func GetVolumesPatchOperations(volumes []corev1.Volume, addVolumes []corev1.Volume, path string) []PatchOperation
- type Service
Constants ¶
const ( SidecarContainerName = "daprd" // Name of the Dapr sidecar container SidecarHTTPPort = 3500 SidecarAPIGRPCPort = 50001 SidecarInternalGRPCPort = 50002 SidecarPublicPort = 3501 SidecarHTTPPortName = "dapr-http" SidecarGRPCPortName = "dapr-grpc" SidecarInternalGRPCPortName = "dapr-internal" SidecarMetricsPortName = "dapr-metrics" SidecarDebugPortName = "dapr-debug" SidecarHealthzPath = "healthz" APIVersionV1 = "v1.0" UnixDomainSocketVolume = "dapr-unix-domain-socket" // Name of the Unix domain socket volume. UserContainerDaprHTTPPortName = "DAPR_HTTP_PORT" // Name of the variable exposed to the app containing the Dapr HTTP port. UserContainerDaprGRPCPortName = "DAPR_GRPC_PORT" // Name of the variable exposed to the app containing the Dapr gRPC port. PatchPathContainers = "/spec/containers" PatchPathVolumes = "/spec/volumes" TokenVolumeKubernetesMountPath = "/var/run/secrets/dapr.io/sentrytoken" /* #nosec */ // Mount path for the Kubernetes service account volume with the sentry token. TokenVolumeName = "dapr-identity-token" /* #nosec */ // Name of the volume with the service account token for daprd. )
Variables ¶
var ( // Dapr API service. ServiceAPI = Service{"dapr-api", 80} // Dapr placement service. ServicePlacement = Service{"dapr-placement-server", 50005} // Dapr sentry service. ServiceSentry = Service{"dapr-sentry", 80} )
var DaprPortEnv = []corev1.EnvVar{ { Name: UserContainerDaprHTTPPortName, Value: strconv.Itoa(SidecarHTTPPort), }, { Name: UserContainerDaprGRPCPortName, Value: strconv.Itoa(SidecarAPIGRPCPort), }, }
DaprPortEnv contains the env vars that are set in containers to pass the ports used by Dapr.
Functions ¶
func GetAppID ¶
func GetAppID(pod metaV1.ObjectMeta) string
GetAppID returns the app ID from the pod's annotation, or uses the pod's name as fallback.
func GetSidecarContainer ¶
func GetSidecarContainer(cfg ContainerConfig) (*corev1.Container, error)
GetSidecarContainer returns the Container object for the sidecar.
func GetTokenVolume ¶ added in v1.10.0
GetTokenVolume returns the volume projection for the Kubernetes service account. Requests a new projected volume with a service account token for our specific audience.
func GetTrustAnchorsAndCertChain ¶
func GetTrustAnchorsAndCertChain(ctx context.Context, kubeClient kubernetes.Interface, namespace string) (string, string, string)
GetTrustAnchorsAndCertChain returns the trust anchor and certs.
func GetUnixDomainSocketVolumeMount ¶ added in v1.10.0
func GetUnixDomainSocketVolumeMount(pod *corev1.Pod) *corev1.VolumeMount
GetUnixDomainSocketVolumeMount returns a volume mount for the pod to append the UNIX domain socket.
func GetVolumeMounts ¶
func GetVolumeMounts(pod corev1.Pod) []corev1.VolumeMount
GetVolumeMounts returns the list of VolumeMount's for the sidecar container.
func ParseEnvString ¶
add env-vars from annotations.
func ParseVolumeMountsString ¶
func ParseVolumeMountsString(volumeMountStr string, readOnly bool) []coreV1.VolumeMount
ParseVolumeMountsString parses the annotation and returns volume mounts. The format of the annotation is: "mountPath1:hostPath1,mountPath2:hostPath2" The readOnly parameter applies to all mounts.
func PodContainsSidecarContainer ¶
PodContainsSidecarContainer returns true if the pod contains a sidecar container (i.e. a container named "daprd").
Types ¶
type Annotations ¶
Annotations contains the annotations for the container.
func (Annotations) Exist ¶
func (a Annotations) Exist(key string) bool
func (Annotations) GetBoolOrDefault ¶
func (a Annotations) GetBoolOrDefault(key string, defaultValue bool) bool
func (Annotations) GetInt32OrDefault ¶
func (a Annotations) GetInt32OrDefault(key string, defaultValue int32) int32
func (Annotations) GetString ¶
func (a Annotations) GetString(key string) string
func (Annotations) GetStringOrDefault ¶
func (a Annotations) GetStringOrDefault(key, defaultValue string) string
type ContainerConfig ¶
type ContainerConfig struct { AppID string Annotations Annotations CertChain string CertKey string ControlPlaneAddress string DaprSidecarImage string Identity string IgnoreEntrypointTolerations []corev1.Toleration ImagePullPolicy corev1.PullPolicy MTLSEnabled bool Namespace string PlacementServiceAddress string SentryAddress string Tolerations []corev1.Toleration TrustAnchors string VolumeMounts []corev1.VolumeMount ComponentsSocketsVolumeMount *corev1.VolumeMount RunAsNonRoot bool ReadOnlyRootFilesystem bool }
ContainerConfig contains the configuration for the sidecar container.
type PatchOperation ¶
type PatchOperation struct { Op string `json:"op"` Path string `json:"path"` Value interface{} `json:"value,omitempty"` }
PatchOperation represents a discreet change to be applied to a Kubernetes resource.
func AddDaprEnvVarsToContainers ¶
func AddDaprEnvVarsToContainers(containers map[int]corev1.Container) []PatchOperation
AddDaprEnvVarsToContainers adds Dapr environment variables to all the containers in any Dapr-enabled pod. The containers can be injected or user-defined.
func AddServiceAccountTokenVolume ¶ added in v1.10.0
func AddServiceAccountTokenVolume(containers []corev1.Container) []PatchOperation
AddServiceAccountTokenVolume adds the projected volume for the service account token to the daprd The containers can be injected or user-defined.
func AddSocketVolumeMountToContainers ¶ added in v1.10.0
func AddSocketVolumeMountToContainers(containers map[int]corev1.Container, socketVolumeMount *corev1.VolumeMount) []PatchOperation
AddSocketVolumeMountToContainers adds the Dapr UNIX domain socket volume to all the containers in any Dapr-enabled pod.
func GetEnvPatchOperations ¶ added in v1.10.0
func GetEnvPatchOperations(envs []corev1.EnvVar, addEnv []corev1.EnvVar, containerIdx int) []PatchOperation
GetEnvPatchOperations adds new environment variables only if they do not exist. It does not override existing values for those variables if they have been defined already.
func GetVolumeMountPatchOperations ¶ added in v1.10.0
func GetVolumeMountPatchOperations(volumeMounts []corev1.VolumeMount, addMounts []corev1.VolumeMount, containerIdx int) []PatchOperation
GetVolumeMountPatchOperations gets the patch operations for volume mounts