Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cmd/manager/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ func init() {
envs["KUBERNETES_NAMESPACE"] = "kubernetes.namespace"
managerCmd.Flags().BoolVarP(&Orchestrators.Kubernetes.AllNamespaces, "kubernetes.all-namespaces", "", false, "Backup volumes of all namespaces.")
envs["KUBERNETES_ALL_NAMESPACES"] = "kubernetes.all-namespaces"
managerCmd.Flags().StringVarP(&Orchestrators.Kubernetes.WatchNamespaces, "kubernetes.watch-namespaces", "", "", "List of namespaces to watch for volumes to backup.")
envs["KUBERNETES_WATCH_NAMESPACES"] = "kubernetes.watch-namespaces"
managerCmd.Flags().StringVarP(&Orchestrators.Kubernetes.KubeConfig, "kubernetes.kubeconfig", "", "", "Path to your kuberconfig file.")
envs["KUBERNETES_KUBECONFIG"] = "kubernetes.kubeconfig"
managerCmd.Flags().StringVarP(&Orchestrators.Kubernetes.AgentServiceAccount, "kubernetes.agent-service-account", "", "", "Specify service account for agents.")
Expand Down
19 changes: 17 additions & 2 deletions pkg/orchestrators/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
type KubernetesConfig struct {
Namespace string
AllNamespaces bool
WatchNamespaces string
KubeConfig string
AgentServiceAccount string
AgentLabelsInline string
Expand Down Expand Up @@ -224,8 +225,8 @@ func (o *KubernetesOrchestrator) DeployAgent(image string, cmd, envs []string, v
RestartPolicy: "Never",
Volumes: kvs,
ServiceAccountName: o.config.AgentServiceAccount,
SecurityContext: &apiv1.PodSecurityContext{
SupplementalGroups: managerPod.Spec.SecurityContext.SupplementalGroups,
SecurityContext: &apiv1.PodSecurityContext{
SupplementalGroups: managerPod.Spec.SecurityContext.SupplementalGroups,
},

Containers: []apiv1.Container{
Expand Down Expand Up @@ -556,6 +557,20 @@ func (o *KubernetesOrchestrator) getNamespaces() (namespaces []string, err error
for _, namespace := range nms.Items {
namespaces = append(namespaces, namespace.Name)
}
} else if o.config.WatchNamespaces != "" {
nms, err := o.client.CoreV1().Namespaces().List(metav1.ListOptions{})
if err != nil {
err = fmt.Errorf("failed to retrieve the list of namespaces: %s", err)
return []string{}, err
}
watchNamespaces := strings.Split(o.config.WatchNamespaces, ",")
for _, namespace := range nms.Items {
for _, ns := range watchNamespaces {
if ns == namespace.Name {
namespaces = append(namespaces, namespace.Name)
}
}
}
} else {
namespaces = append(namespaces, o.config.Namespace)
}
Expand Down
Loading