From 69464821102d2589f50a973bc3ede71613c8011d Mon Sep 17 00:00:00 2001 From: Pavan Navarathna <6504783+pavannd1@users.noreply.github.com> Date: Thu, 18 Jan 2024 19:23:00 -0800 Subject: [PATCH 01/17] Update version in mysql docker image (#2617) --- docker/kanister-mysql/image/Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker/kanister-mysql/image/Dockerfile b/docker/kanister-mysql/image/Dockerfile index 1ff0a98337..5934df1f63 100644 --- a/docker/kanister-mysql/image/Dockerfile +++ b/docker/kanister-mysql/image/Dockerfile @@ -1,12 +1,12 @@ ARG TOOLS_IMAGE -FROM registry.access.redhat.com/ubi9/ubi:9.1.0-1646.1669627755 as builder +FROM registry.access.redhat.com/ubi9/ubi:9.3-1476 as builder RUN dnf clean all && rm -rf /var/cache/dnf RUN dnf -y upgrade # Download the RPM file to avoid timeouts during install -RUN curl -LO https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm +RUN curl -LO https://dev.mysql.com/get/mysql80-community-release-el9-5.noarch.rpm # Install from the local file -RUN dnf install -y mysql80-community-release-el9-1.noarch.rpm +RUN dnf install -y mysql80-community-release-el9-5.noarch.rpm RUN dnf install -y mysql-community-client From 0cebc078ab0d426ad8c3b6d8898445bf98779501 Mon Sep 17 00:00:00 2001 From: Vivek Singh Date: Wed, 24 Jan 2024 10:29:09 +0100 Subject: [PATCH 02/17] Improve `NewPodControllerForExistingPod` to set `podReady` to true (#2623) * Improve `NewPodControllerForExistingPod` to set `podReady` to true `NewPodControllerForExistingPod` function was supposed to return the podController for an existing pod. If this function is caleld, it would mean that the pod is already runnign and we are creating `podController` for that pod. But this function didn't set `podReady` field of podController to true that was beign checked in some other methods to make sure that the pod is running. And because of that those methods would see the pod to be not running and complain. This commit fixes that by making sure that the pod is running and sets `podReady` to true. * Improve comment to function --- pkg/kube/pod_controller.go | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/pkg/kube/pod_controller.go b/pkg/kube/pod_controller.go index 19f7af931d..cd9aa296a4 100644 --- a/pkg/kube/pod_controller.go +++ b/pkg/kube/pod_controller.go @@ -99,11 +99,20 @@ func NewPodController(cli kubernetes.Interface, options *PodOptions, opts ...Pod return r } -// NewPodControllerForExistingPod returns a new PodController given Kubernetes -// Client and existing pod details. -// Invocation of StartPod of returned PodController instance will fail, since the pod is already known. -func NewPodControllerForExistingPod(cli kubernetes.Interface, pod *corev1.Pod) PodController { - r := &podController{ +// NewPodControllerForExistingPod returns a new PodController for the given +// running pod. +// Invocation of StartPod of returned PodController instance will fail, since +// the pod is expected to be running already. +// Note: +// If the pod is not in the ready state, it will wait for up to +// KANISTER_POD_READY_WAIT_TIMEOUT (15 minutes by default) until the pod becomes ready. +func NewPodControllerForExistingPod(cli kubernetes.Interface, pod *corev1.Pod) (PodController, error) { + err := WaitForPodReady(context.Background(), cli, pod.Namespace, pod.Name) + if err != nil { + return nil, err + } + + pc := &podController{ cli: cli, pcp: &podControllerProcessor{ cli: cli, @@ -117,9 +126,10 @@ func NewPodControllerForExistingPod(cli kubernetes.Interface, pod *corev1.Pod) P Namespace: pod.Namespace, ContainerName: pod.Spec.Containers[0].Name, } - r.podOptions = options + pc.podOptions = options + pc.podReady = true - return r + return pc, nil } func (p *podController) PodName() string { From 6293ba181fb8bf3448246d9357777b25718e6057 Mon Sep 17 00:00:00 2001 From: Prasad Ghangal Date: Thu, 25 Jan 2024 13:50:08 +0530 Subject: [PATCH 03/17] Add phase to wait for Cassandra to be ready before scale down (#2625) * Add wait for ready logic in cassandra BP Signed-off-by: Prasad Ghangal * Set replication factor to 1 Signed-off-by: Prasad Ghangal * Add wait for cassandra conn ready logic Signed-off-by: Prasad Ghangal * Update helm value replicaCount Signed-off-by: Prasad Ghangal * Add nodetool scrub step in waitforready Signed-off-by: Prasad Ghangal --------- Signed-off-by: Prasad Ghangal Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- examples/cassandra/cassandra-blueprint.yaml | 28 +++++++++++++++++++++ pkg/app/cassandra.go | 12 ++++----- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/examples/cassandra/cassandra-blueprint.yaml b/examples/cassandra/cassandra-blueprint.yaml index 0afb576a35..b924ae7162 100644 --- a/examples/cassandra/cassandra-blueprint.yaml +++ b/examples/cassandra/cassandra-blueprint.yaml @@ -91,6 +91,34 @@ actions: inputArtifactNames: - params phases: + - func: KubeExec + name: waitForConnectionReady + args: + namespace: "{{ .StatefulSet.Namespace }}" + pod: "{{ index .StatefulSet.Pods 0 }}" + command: + - bash + - -o + - pipefail + - -c + - | + timeout=300 + while true + do + VAR=$((cqlsh -u cassandra -p $CASSANDRA_PASSWORD -e "DESCRIBE keyspaces;" --request-timeout=300) 2>&1) + if [[ $VAR != *"Unable to connect to any servers"* ]] + then + break + fi + if [[ $timeout -le 0 ]] + then + echo "Timed out waiting for cqlsh to configure.." + exit 1 + fi + sleep 2 + timeout=$((timeout-2)) + done + nodetool scrub - func: ScaleWorkload name: shutdownPod args: diff --git a/pkg/app/cassandra.go b/pkg/app/cassandra.go index 5c41e20994..1d0ec78337 100644 --- a/pkg/app/cassandra.go +++ b/pkg/app/cassandra.go @@ -57,11 +57,11 @@ func NewCassandraInstance(name string) App { Chart: "cassandra", RepoName: helm.BitnamiRepoName, Values: map[string]string{ - "image.registry": "ghcr.io", - "image.repository": "kanisterio/cassandra", - "image.tag": "v9.99.9-dev", - "image.pullPolicy": "Always", - "cluster.replicaCount": "1", + "image.registry": "ghcr.io", + "image.repository": "kanisterio/cassandra", + "image.tag": "v9.99.9-dev", + "image.pullPolicy": "Always", + "replicaCount": "1", }, }, } @@ -206,7 +206,7 @@ func (cas *CassandraInstance) Reset(ctx context.Context) error { func (cas *CassandraInstance) Initialize(ctx context.Context) error { // create the keyspace createKS := []string{"sh", "-c", fmt.Sprintf("cqlsh -u cassandra -p $CASSANDRA_PASSWORD -e \"create keyspace "+ - "restaurants with replication = {'class':'SimpleStrategy', 'replication_factor': 3};\" --request-timeout=%s", cqlTimeout)} + "restaurants with replication = {'class':'SimpleStrategy', 'replication_factor': 1};\" --request-timeout=%s", cqlTimeout)} _, stderr, err := cas.execCommand(ctx, createKS) if err != nil { return errors.Wrapf(err, "Error %s while creating the keyspace for application.", stderr) From 7e7e3c56014a5f1d6489bbd1176914909b4b861b Mon Sep 17 00:00:00 2001 From: Nick Date: Thu, 25 Jan 2024 22:04:59 -0800 Subject: [PATCH 04/17] Update kopia commit in kanister-tools image (#2627) * Update kopia commit in kanister-tools image * Add go mod changes --- .goreleaser.yml | 4 +-- go.mod | 35 ++++++++++++------------ go.sum | 71 +++++++++++++++++++++++-------------------------- 3 files changed, 53 insertions(+), 57 deletions(-) diff --git a/.goreleaser.yml b/.goreleaser.yml index ccfb9f239e..50e5a6a5a7 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -64,8 +64,8 @@ dockers: dockerfile: 'docker/tools/Dockerfile' build_flag_templates: - "--build-arg=kan_tools_version={{ .Tag }}" -# Refers to https://github.com/kopia/kopia/commit/fc640a98e4914e1da9fff6be1931ebfd767d3ee3 - - "--build-arg=kopia_build_commit=fc640a9" +# Refers to https://github.com/kopia/kopia/commit/1d6f852cd6534f4bea978cbdc85c583803d79f77 + - "--build-arg=kopia_build_commit=1d6f852" - "--build-arg=kopia_repo_org=kopia" extra_files: - 'LICENSE' diff --git a/go.mod b/go.mod index 2cbda1c40b..63c24e8619 100644 --- a/go.mod +++ b/go.mod @@ -14,7 +14,7 @@ replace ( require ( github.com/Azure/azure-sdk-for-go v68.0.0+incompatible github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 - github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v4 v4.2.1 github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.3.0 github.com/Masterminds/semver v1.5.0 @@ -30,7 +30,7 @@ require ( github.com/hashicorp/go-version v1.6.0 github.com/jpillora/backoff v1.0.0 github.com/json-iterator/go v1.1.12 - github.com/kopia/kopia v0.15.1-0.20231222003958-fc640a98e491 + github.com/kopia/kopia v0.15.1-0.20240126014601-1d6f852cd653 github.com/kubernetes-csi/external-snapshotter/client/v4 v4.2.0 github.com/lib/pq v1.10.9 github.com/mitchellh/mapstructure v1.5.0 @@ -47,7 +47,7 @@ require ( go.uber.org/zap v1.26.0 golang.org/x/oauth2 v0.16.0 gonum.org/v1/gonum v0.14.0 - google.golang.org/api v0.156.0 + google.golang.org/api v0.157.0 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 @@ -78,7 +78,7 @@ require ( github.com/Azure/go-autorest v14.2.0+incompatible // indirect github.com/Azure/go-autorest/logger v0.2.1 // indirect github.com/Azure/go-autorest/tracing v0.6.0 // indirect - github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 // indirect github.com/GehirnInc/crypt v0.0.0-20230320061759-8cc1b52080c5 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect @@ -161,27 +161,27 @@ require ( github.com/oklog/ulid v1.3.1 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect - github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/profile v1.7.0 // indirect github.com/pkg/sftp v1.13.6 // indirect github.com/pquerna/ffjson v0.0.0-20190930134022-aa0246cd15f7 // indirect - github.com/prometheus/common v0.45.0 // indirect + github.com/prometheus/common v0.46.0 // indirect github.com/prometheus/procfs v0.12.0 // indirect github.com/rs/xid v1.5.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/studio-b12/gowebdav v0.9.0 // indirect - github.com/tg123/go-htpasswd v1.2.1 // indirect + github.com/tg123/go-htpasswd v1.2.2 // indirect github.com/xhit/go-str2duration/v2 v2.1.0 // indirect github.com/xlab/treeprint v1.2.0 // indirect github.com/zalando/go-keyring v0.2.3 // indirect github.com/zeebo/blake3 v0.2.3 // indirect go.mongodb.org/mongo-driver v1.13.1 // indirect go.opencensus.io v0.24.0 // indirect - go.opentelemetry.io/otel v1.21.0 // indirect - go.opentelemetry.io/otel/sdk v1.21.0 // indirect - go.opentelemetry.io/otel/trace v1.21.0 // indirect + go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/otel/sdk v1.22.0 // indirect + go.opentelemetry.io/otel/trace v1.22.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.18.0 // indirect @@ -197,9 +197,9 @@ require ( golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.8 // indirect - google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect + google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac // indirect google.golang.org/grpc v1.60.1 // indirect google.golang.org/protobuf v1.32.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect @@ -223,14 +223,13 @@ require ( github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/coreos/go-systemd/v22 v22.5.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/golang-jwt/jwt/v5 v5.0.0 // indirect + github.com/golang-jwt/jwt/v5 v5.2.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect - github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect - go.opentelemetry.io/otel/metric v1.21.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 // indirect + go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0 // indirect + go.opentelemetry.io/otel/metric v1.22.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect ) diff --git a/go.sum b/go.sum index 858434ca0a..c893fea818 100644 --- a/go.sum +++ b/go.sum @@ -27,8 +27,8 @@ github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0 github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1 h1:lGlwhPtrX6EVml1hO0ivjkUxsSyl4dsiw9qcA1k/3IQ= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.9.1/go.mod h1:RKUqNu35KJYcVG/fqTRqmuXJZYNhYkBrnC/hX7yGbTA= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0 h1:BMAjVKJM0U/CYF27gA0ZMmXGkOcvfFtD0oHVZ1TIPRI= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.4.0/go.mod h1:1fXstnBMas5kzG+S3q8UoJcmyU6nUeunJcMDHcRYHhs= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1 h1:6oNBlSdi1QqM1PNW7FPA6xOGA5UNsXnkaYZz9vdPGhA= github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.1/go.mod h1:s4kgfzA0covAXNicZHDMN58jExvcng2mC/DepXiF1EI= github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/compute/armcompute/v4 v4.2.1 h1:UPeCRD+XY7QlaGQte2EVI2iOcWvUYA2XY8w5T/8v0NQ= @@ -79,8 +79,8 @@ github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0 h1:hVeq+yCyUi+MsoO/CU95yqCIcdzra5ovzk8Q2BBpV2M= -github.com/AzureAD/microsoft-authentication-library-for-go v1.2.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1 h1:DzHpqpoJVaCgOUdVHxE8QB52S6NiVdDQvGlny1qvPqA= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.1/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/GehirnInc/crypt v0.0.0-20190301055215-6c0105aabd46/go.mod h1:kC29dT1vFpj7py2OvG1khBdQpo3kInWP+6QipLbdngo= @@ -239,8 +239,8 @@ github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzw github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= -github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-jwt/jwt/v5 v5.2.0 h1:d/ix8ftRUorsN+5eMIlF4T6J8CAt9rch3My2winC1Jw= +github.com/golang-jwt/jwt/v5 v5.2.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo= github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= @@ -379,8 +379,8 @@ github.com/klauspost/reedsolomon v1.12.0 h1:I5FEp3xSwVCcEh3F5A7dofEfhXdF/bWhQWPH github.com/klauspost/reedsolomon v1.12.0/go.mod h1:EPLZJeh4l27pUGC3aXOjheaoh1I9yut7xTURiW3LQ9Y= github.com/kopia/htmluibuild v0.0.1-0.20231019063300-75c2a788c7d0 h1:TvupyyfbUZzsO4DQJpQhKZnUa61xERcJ+ejCbHWG2NY= github.com/kopia/htmluibuild v0.0.1-0.20231019063300-75c2a788c7d0/go.mod h1:cSImbrlwvv2phvj5RfScL2v08ghX6xli0PcK6f+t8S0= -github.com/kopia/kopia v0.15.1-0.20231222003958-fc640a98e491 h1:SjS0WeugNtwce++Y/XM+MXN0aPifPKal5gF0bsCSL9M= -github.com/kopia/kopia v0.15.1-0.20231222003958-fc640a98e491/go.mod h1:29B/RaPWtFASmUuMy29F+ZAPSyV/7pY3ViDsta1izqM= +github.com/kopia/kopia v0.15.1-0.20240126014601-1d6f852cd653 h1:cXJWLVLN5/Fy7d6JVckV2NBpvaT2hGy3Er8qd+ADobw= +github.com/kopia/kopia v0.15.1-0.20240126014601-1d6f852cd653/go.mod h1:bLMUPEY4Hw7+vbhS+LzCiPPy2kum6GatshUH2xd08hU= github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -414,8 +414,6 @@ github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg= -github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/minio-go/v7 v7.0.66 h1:bnTOXOHjOqv/gcMuiVbN9o2ngRItvqE774dG9nq0Dzw= @@ -472,8 +470,8 @@ github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+v github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= -github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -490,8 +488,8 @@ github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlk github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM= -github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY= +github.com/prometheus/common v0.46.0 h1:doXzt5ybi1HBKpsZOL0sSkaNHJJqkyfEWZGGqqScV0Y= +github.com/prometheus/common v0.46.0/go.mod h1:Tp0qkxpb9Jsg54QMe+EAmqXkSV7Evdy1BTn+g2pa/hQ= github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= @@ -532,8 +530,8 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/studio-b12/gowebdav v0.9.0 h1:1j1sc9gQnNxbXXM4M/CebPOX4aXYtr7MojAVcN4dHjU= github.com/studio-b12/gowebdav v0.9.0/go.mod h1:bHA7t77X/QFExdeAnDzK6vKM34kEZAcE1OX4MfiwjkE= -github.com/tg123/go-htpasswd v1.2.1 h1:i4wfsX1KvvkyoMiHZzjS0VzbAPWfxzI8INcZAKtutoU= -github.com/tg123/go-htpasswd v1.2.1/go.mod h1:erHp1B86KXdwQf1X5ZrLb7erXZnWueEQezb2dql4q58= +github.com/tg123/go-htpasswd v1.2.2 h1:tmNccDsQ+wYsoRfiONzIhDm5OkVHQzN3w4FOBAlN6BY= +github.com/tg123/go-htpasswd v1.2.2/go.mod h1:FcIrK0J+6zptgVwK1JDlqyajW/1B4PtuJ/FLWl7nx8A= github.com/vmware/govmomi v0.34.2 h1:o6ydkTVITOkpQU6HAf6tP5GvHFCNJlNUNlMsvFK77X4= github.com/vmware/govmomi v0.34.2/go.mod h1:qWWT6n9mdCr/T9vySsoUqcI04sSEj4CqHXxtk/Y+Los= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= @@ -567,18 +565,18 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.4 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= -go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc= -go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0= -go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4= -go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= -go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8= -go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= -go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc= -go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 h1:9M3+rhx7kZCIQQhQRYaZCdNu1V73tm4TvXs2ntl98C4= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0/go.mod h1:noq80iT8rrHP1SfybmPiRGc9dc5M8RPmGvtwo7Oo7tc= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0 h1:H2JFgRcGiyHg7H7bwcwaQJYrNFqCqrbTQ8K4p1OvDu8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0/go.mod h1:WfCWp1bGoYK8MeULtI15MmQVczfR+bFkk0DF3h06QmQ= +go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I= go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc= @@ -677,7 +675,6 @@ golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -761,8 +758,8 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.156.0 h1:yloYcGbBtVYjLKQe4enCunxvwn3s2w/XPrrhVf6MsvQ= -google.golang.org/api v0.156.0/go.mod h1:bUSmn4KFO0Q+69zo9CNIDp4Psi6BqM0np0CbzKRSiSY= +google.golang.org/api v0.157.0 h1:ORAeqmbrrozeyw5NjnMxh7peHO0UzV4wWYSwZeCUb20= +google.golang.org/api v0.157.0/go.mod h1:+z4v4ufbZ1WEpld6yMGHyggs+PmAHiaLNj5ytP3N01g= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -781,12 +778,12 @@ google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBr google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 h1:YJ5pD9rF8o9Qtta0Cmy9rdBwkSjrTCT6XTiUQVOtIos= -google.golang.org/genproto v0.0.0-20231212172506-995d672761c0/go.mod h1:l/k7rMz0vFTBPy+tFSGvXEd3z+BcoG1k7EHbqm+YBsY= -google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0 h1:s1w3X6gQxwrLEpxnLd/qXTVLgQE2yXwaOaoa6IlY/+o= -google.golang.org/genproto/googleapis/api v0.0.0-20231212172506-995d672761c0/go.mod h1:CAny0tYF+0/9rmDB9fahA9YLzX3+AEVl1qXbv5hhj6c= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 h1:6G8oQ016D88m1xAKljMlBOOGWDZkes4kMhgGFlf8WcQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU= +google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 h1:nz5NESFLZbJGPFxDT/HCn+V1mZ8JGNoY4nUpmW/Y2eg= +google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917/go.mod h1:pZqR+glSb11aJ+JQcczCvgf47+duRuzNSKqE8YAQnV0= +google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 h1:rcS6EyEaoCO52hQDupoSfrxI3R6C2Tq741is7X8OvnM= +google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go.mod h1:CmlNWB9lSezaYELKS5Ym1r44VrrbPUa7JTvw+6MbpJ0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac h1:nUQEQmH/csSvFECKYRv6HWEyypysidKl2I6Qpsglq/0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= From 8b0988be091b963b43be4bafdc83f106aa508a93 Mon Sep 17 00:00:00 2001 From: InfraQ <63741182+infraq@users.noreply.github.com> Date: Thu, 25 Jan 2024 22:23:58 -0800 Subject: [PATCH 05/17] Kanister docs update to version 0.105.0 (#2629) Co-authored-by: Kasten Production --- examples/aws-rds/postgresql/README.md | 2 +- .../postgresql/rds-postgres-blueprint.yaml | 6 +++--- .../postgresql/rds-postgres-dump-blueprint.yaml | 2 +- examples/cassandra/README.md | 4 ++-- examples/cassandra/cassandra-blueprint.yaml | 2 +- examples/cockroachdb/cockroachdb-blueprint.yaml | 2 +- .../blueprint-v2/couchbase-blueprint.yaml | 6 +++--- examples/couchbase/couchbase-blueprint.yaml | 2 +- examples/csi-snapshot/README.md | 2 +- examples/elasticsearch/README.md | 4 ++-- .../blueprint-v2/elasticsearch-blueprint.yaml | 6 +++--- .../elasticsearch/elasticsearch-blueprint.yaml | 6 +++--- .../k8s/etcd-incluster-blueprint.yaml | 8 ++++---- .../etcd-incluster-ocp-blueprint.yaml | 10 +++++----- .../ocp/etcd-incluster-ocp-blueprint.yaml | 8 ++++---- examples/foundationdb/README.md | 2 +- .../blueprint-v2/foundationdb-blueprint.yaml | 2 +- examples/k8ssandra/README.md | 2 +- examples/kafka/adobe-s3-connector/README.md | 2 +- examples/maria/blueprint-v2/maria-blueprint.yaml | 6 +++--- examples/maria/maria-blueprint.yaml | 6 +++--- examples/mongo-sidecar/README.md | 2 +- examples/mongodb-atlas/README.md | 4 ++-- examples/mongodb-deploymentconfig/README.md | 2 +- .../blueprint-v2/mongo-dep-config-blueprint.yaml | 6 +++--- .../mongo-dep-config-blueprint.yaml | 6 +++--- examples/mongodb-restic/README.md | 4 ++-- examples/mongodb-restic/mongodb-blueprint.yaml | 2 +- examples/mongodb/README.md | 2 +- .../mongodb/blueprint-v2/mongo-blueprint.yaml | 6 +++--- examples/mongodb/mongo-blueprint.yaml | 6 +++--- examples/mssql/README.md | 2 +- examples/mssql/blueprint-v2/mssql-blueprint.yaml | 6 +++--- examples/mssql/mssql-blueprint.yaml | 6 +++--- examples/mysql-deploymentconfig/README.md | 2 +- .../blueprint-v2/mysql-dep-config-blueprint.yaml | 6 +++--- .../mysql-dep-config-blueprint.yaml | 6 +++--- examples/mysql/README.md | 2 +- examples/mysql/blueprint-v2/mysql-blueprint.yaml | 6 +++--- examples/mysql/mysql-blueprint.yaml | 6 +++--- examples/postgresql-deploymentconfig/README.md | 2 +- .../postgres-dep-config-blueprint.yaml | 6 +++--- .../postgres-dep-config-blueprint.yaml | 6 +++--- examples/postgresql-ha/hook-blueprint/README.md | 2 +- .../hook-blueprint/postgres-ha-hook.yaml | 2 +- examples/postgresql-wale/README.md | 6 +++--- .../postgresql-wale/postgresql-blueprint.yaml | 4 ++-- examples/postgresql/README.md | 4 ++-- .../blueprint-v2/postgres-blueprint.yaml | 6 +++--- examples/postgresql/postgres-blueprint.yaml | 6 +++--- .../postgresql/v10.16.2/postgres-blueprint.yaml | 6 +++--- examples/redis/README.md | 2 +- examples/time-log/blueprint.yaml | 2 +- examples/time-log/time-logger-deployment.yaml | 2 +- helm/kanister-operator/Chart.yaml | 2 +- helm/kanister-operator/values.yaml | 6 +++--- helm/profile/Chart.yaml | 2 +- pkg/app/csi-snapshot.go | 2 +- pkg/consts/consts.go | 2 +- pkg/function/data_test.go | 6 +++--- pkg/function/export_rds_snapshot_location.go | 2 +- pkg/function/kube_exec_test.go | 10 +++++----- pkg/function/kube_task_test.go | 4 ++-- pkg/kube/pod_test.go | 16 ++++++++-------- pkg/testing/e2e_test.go | 2 +- scripts/get.sh | 2 +- 66 files changed, 142 insertions(+), 142 deletions(-) diff --git a/examples/aws-rds/postgresql/README.md b/examples/aws-rds/postgresql/README.md index b8ce53fd83..68c9bfcbc5 100755 --- a/examples/aws-rds/postgresql/README.md +++ b/examples/aws-rds/postgresql/README.md @@ -9,7 +9,7 @@ This example is to demonstrate how Kanister can be integrated with AWS RDS insta ## Prerequisites - Kubernetes 1.10+ -- Kanister controller version 0.104.0 installed in your cluster +- Kanister controller version 0.105.0 installed in your cluster - Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) ## Create RDS instance on AWS diff --git a/examples/aws-rds/postgresql/rds-postgres-blueprint.yaml b/examples/aws-rds/postgresql/rds-postgres-blueprint.yaml index 3f1931be0b..3ce986bcae 100644 --- a/examples/aws-rds/postgresql/rds-postgres-blueprint.yaml +++ b/examples/aws-rds/postgresql/rds-postgres-blueprint.yaml @@ -14,7 +14,7 @@ actions: - func: KubeTask name: backupSnapshots args: - image: "ghcr.io/kanisterio/postgres-kanister-tools:0.104.0" + image: "ghcr.io/kanisterio/postgres-kanister-tools:0.105.0" namespace: "{{ .Object.metadata.namespace }}" command: - bash @@ -53,7 +53,7 @@ actions: - func: KubeTask name: restoreSnapshots args: - image: "ghcr.io/kanisterio/postgres-kanister-tools:0.104.0" + image: "ghcr.io/kanisterio/postgres-kanister-tools:0.105.0" namespace: "{{ .Object.metadata.namespace }}" command: - bash @@ -90,7 +90,7 @@ actions: - func: KubeTask name: restoreSnapshots args: - image: "ghcr.io/kanisterio/postgres-kanister-tools:0.104.0" + image: "ghcr.io/kanisterio/postgres-kanister-tools:0.105.0" namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/aws-rds/postgresql/rds-postgres-dump-blueprint.yaml b/examples/aws-rds/postgresql/rds-postgres-dump-blueprint.yaml index 97ae6c3620..6554258edc 100644 --- a/examples/aws-rds/postgresql/rds-postgres-dump-blueprint.yaml +++ b/examples/aws-rds/postgresql/rds-postgres-dump-blueprint.yaml @@ -66,7 +66,7 @@ actions: name: deleteBackup args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 command: - bash - -o diff --git a/examples/cassandra/README.md b/examples/cassandra/README.md index 959495b2c4..7d054c5faf 100644 --- a/examples/cassandra/README.md +++ b/examples/cassandra/README.md @@ -7,7 +7,7 @@ As the official documentation of [Cassandra](http://cassandra.apache.org/) says, * Kubernetes 1.9+ * Kubernetes beta APIs enabled only if `podDisruptionBudget` is enabled * PV support on the underlying infrastructure -* Kanister controller version 0.104.0 installed in your cluster, let's say in namespace `` +* Kanister controller version 0.105.0 installed in your cluster, let's say in namespace `` * Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) To install kanister and related tools you can follow [this](https://docs.kanister.io/install.html#install) link. @@ -29,7 +29,7 @@ $ helm repo add bitnami https://charts.bitnami.com/bitnami $ helm repo update # remove app-namespace with the namespace you want to deploy the Cassandra app in $ kubectl create ns -$ helm install cassandra bitnami/cassandra --namespace --set image.repository=kanisterio/cassandra --set image.tag=0.104.0 --set cluster.replicaCount=2 --set image.registry=ghcr.io --set image.pullPolicy=Always +$ helm install cassandra bitnami/cassandra --namespace --set image.repository=kanisterio/cassandra --set image.tag=0.105.0 --set cluster.replicaCount=2 --set image.registry=ghcr.io --set image.pullPolicy=Always ``` diff --git a/examples/cassandra/cassandra-blueprint.yaml b/examples/cassandra/cassandra-blueprint.yaml index b924ae7162..fbe35a4fd3 100644 --- a/examples/cassandra/cassandra-blueprint.yaml +++ b/examples/cassandra/cassandra-blueprint.yaml @@ -130,7 +130,7 @@ actions: name: restoreFromObjectStore args: namespace: "{{ .StatefulSet.Namespace }}" - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 backupArtifactPrefix: "{{ .ArtifactsIn.params.KeyValue.backupPrefixLocation }}" pods: "{{ range .StatefulSet.Pods }} {{.}}{{end}}" restorePath: "{{ .ArtifactsIn.params.KeyValue.restorePathPrefix }}" diff --git a/examples/cockroachdb/cockroachdb-blueprint.yaml b/examples/cockroachdb/cockroachdb-blueprint.yaml index d31d45d38e..17eafaec40 100644 --- a/examples/cockroachdb/cockroachdb-blueprint.yaml +++ b/examples/cockroachdb/cockroachdb-blueprint.yaml @@ -151,7 +151,7 @@ actions: - func: KubeTask name: deleteFromS3Store args: - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/couchbase/blueprint-v2/couchbase-blueprint.yaml b/examples/couchbase/blueprint-v2/couchbase-blueprint.yaml index 5154259caa..c07e1696db 100644 --- a/examples/couchbase/blueprint-v2/couchbase-blueprint.yaml +++ b/examples/couchbase/blueprint-v2/couchbase-blueprint.yaml @@ -21,7 +21,7 @@ actions: namespace: "{{ .Object.metadata.namespace }}" args: namespace: "{{ .Object.metadata.namespace }}" - image: ghcr.io/kanisterio/couchbase-tools:0.104.0 + image: ghcr.io/kanisterio/couchbase-tools:0.105.0 command: - bash - -o @@ -58,7 +58,7 @@ actions: namespace: "{{ .Object.metadata.namespace }}" args: namespace: "{{ .Object.metadata.namespace }}" - image: ghcr.io/kanisterio/couchbase-tools:0.104.0 + image: ghcr.io/kanisterio/couchbase-tools:0.105.0 command: - bash - -o @@ -89,7 +89,7 @@ actions: name: deleteBackup args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/couchbase-tools:0.104.0 + image: ghcr.io/kanisterio/couchbase-tools:0.105.0 command: - bash - -o diff --git a/examples/couchbase/couchbase-blueprint.yaml b/examples/couchbase/couchbase-blueprint.yaml index 650b7b353f..902d9713bd 100644 --- a/examples/couchbase/couchbase-blueprint.yaml +++ b/examples/couchbase/couchbase-blueprint.yaml @@ -79,7 +79,7 @@ actions: name: deleteBackup args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 command: - bash - -o diff --git a/examples/csi-snapshot/README.md b/examples/csi-snapshot/README.md index 2ac15bfab7..0c78dd5173 100644 --- a/examples/csi-snapshot/README.md +++ b/examples/csi-snapshot/README.md @@ -8,7 +8,7 @@ This example demonstrates Kanister's ability to protect an application called Ti - Helm 3 installed - Kubernetes 1.16+ with Beta APIs enabled -- Kanister controller version 0.104.0 installed in the cluster, let's assume in namespace `kanister` +- Kanister controller version 0.105.0 installed in the cluster, let's assume in namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) - VolumeSnapshot CRDs, Snapshot Controller & a CSI Driver diff --git a/examples/elasticsearch/README.md b/examples/elasticsearch/README.md index 39d6c98267..884cc81c89 100644 --- a/examples/elasticsearch/README.md +++ b/examples/elasticsearch/README.md @@ -20,7 +20,7 @@ moving on to Elasticsearch 6.0. * Kubernetes 1.20+ * PV provisioner support in the underlying infrastructure -* Kanister controller version 0.104.0 installed in your cluster +* Kanister controller version 0.105.0 installed in your cluster * Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) ## StatefulSets Details @@ -74,7 +74,7 @@ Add Kanister Helm repository and install Kanister operator ```bash $ helm repo add kanister https://charts.kanister.io $ helm install kanister --namespace kanister --create-namespace \ - kanister/kanister-operator --set image.tag=0.104.0 + kanister/kanister-operator --set image.tag=0.105.0 ``` ### Create Profile diff --git a/examples/elasticsearch/blueprint-v2/elasticsearch-blueprint.yaml b/examples/elasticsearch/blueprint-v2/elasticsearch-blueprint.yaml index 42f5c73034..87220104ba 100644 --- a/examples/elasticsearch/blueprint-v2/elasticsearch-blueprint.yaml +++ b/examples/elasticsearch/blueprint-v2/elasticsearch-blueprint.yaml @@ -20,7 +20,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: "ghcr.io/kanisterio/es-sidecar:0.104.0" + image: "ghcr.io/kanisterio/es-sidecar:0.105.0" command: - bash - -o @@ -50,7 +50,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: "ghcr.io/kanisterio/es-sidecar:0.104.0" + image: "ghcr.io/kanisterio/es-sidecar:0.105.0" command: - bash - -o @@ -75,7 +75,7 @@ actions: name: deleteFromStore args: namespace: "{{ .Namespace.Name }}" - image: "ghcr.io/kanisterio/es-sidecar:0.104.0" + image: "ghcr.io/kanisterio/es-sidecar:0.105.0" command: - bash - -o diff --git a/examples/elasticsearch/elasticsearch-blueprint.yaml b/examples/elasticsearch/elasticsearch-blueprint.yaml index f2fbdc0fab..e7a828ccfd 100644 --- a/examples/elasticsearch/elasticsearch-blueprint.yaml +++ b/examples/elasticsearch/elasticsearch-blueprint.yaml @@ -18,7 +18,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: "ghcr.io/kanisterio/es-sidecar:0.104.0" + image: "ghcr.io/kanisterio/es-sidecar:0.105.0" command: - bash - -o @@ -48,7 +48,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: "ghcr.io/kanisterio/es-sidecar:0.104.0" + image: "ghcr.io/kanisterio/es-sidecar:0.105.0" command: - bash - -o @@ -69,7 +69,7 @@ actions: name: deleteFromObjectStore args: namespace: "{{ .Namespace.Name }}" - image: "ghcr.io/kanisterio/es-sidecar:0.104.0" + image: "ghcr.io/kanisterio/es-sidecar:0.105.0" command: - bash - -o diff --git a/examples/etcd/etcd-in-cluster/k8s/etcd-incluster-blueprint.yaml b/examples/etcd/etcd-in-cluster/k8s/etcd-incluster-blueprint.yaml index ad68adb8a5..1dacb44af3 100644 --- a/examples/etcd/etcd-in-cluster/k8s/etcd-incluster-blueprint.yaml +++ b/examples/etcd/etcd-in-cluster/k8s/etcd-incluster-blueprint.yaml @@ -12,7 +12,7 @@ actions: - func: KubeTask name: takeSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -37,7 +37,7 @@ actions: - func: KubeTask name: uploadSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -55,7 +55,7 @@ actions: - func: KubeTask name: removeSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -74,7 +74,7 @@ actions: name: deleteFromObjectStore args: namespace: "{{ .Namespace.Name }}" - image: "ghcr.io/kanisterio/kanister-tools:0.104.0" + image: "ghcr.io/kanisterio/kanister-tools:0.105.0" command: - bash - -o diff --git a/examples/etcd/etcd-in-cluster/ocp/blueprint-v2/etcd-incluster-ocp-blueprint.yaml b/examples/etcd/etcd-in-cluster/ocp/blueprint-v2/etcd-incluster-ocp-blueprint.yaml index 0cac3f2806..a7abde7257 100644 --- a/examples/etcd/etcd-in-cluster/ocp/blueprint-v2/etcd-incluster-ocp-blueprint.yaml +++ b/examples/etcd/etcd-in-cluster/ocp/blueprint-v2/etcd-incluster-ocp-blueprint.yaml @@ -11,7 +11,7 @@ actions: - func: KubeTask name: takeSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -34,7 +34,7 @@ actions: - func: KubeTask name: uploadSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -50,7 +50,7 @@ actions: - func: KubeTask name: removeSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -73,7 +73,7 @@ actions: - func: PrepareData name: copyFromObjectStore args: - image: "ghcr.io/kanisterio/kanister-tools:0.104.0" + image: "ghcr.io/kanisterio/kanister-tools:0.105.0" namespace: "{{ .Object.metadata.namespace }}" podOverride: nodeSelector: @@ -108,7 +108,7 @@ actions: name: deleteFromObjectStore args: namespace: "{{ .Namespace.Name }}" - image: "ghcr.io/kanisterio/kanister-tools:0.104.0" + image: "ghcr.io/kanisterio/kanister-tools:0.105.0" command: - bash - -o diff --git a/examples/etcd/etcd-in-cluster/ocp/etcd-incluster-ocp-blueprint.yaml b/examples/etcd/etcd-in-cluster/ocp/etcd-incluster-ocp-blueprint.yaml index 8b7a2ac87d..de55b832db 100644 --- a/examples/etcd/etcd-in-cluster/ocp/etcd-incluster-ocp-blueprint.yaml +++ b/examples/etcd/etcd-in-cluster/ocp/etcd-incluster-ocp-blueprint.yaml @@ -12,7 +12,7 @@ actions: - func: KubeTask name: takeSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -35,7 +35,7 @@ actions: - func: KubeTask name: uploadSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -53,7 +53,7 @@ actions: - func: KubeTask name: removeSnapshot args: - image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.104.0 + image: ghcr.io/kanisterio/kanister-kubectl-1.18:0.105.0 command: - sh - -o @@ -72,7 +72,7 @@ actions: name: deleteFromObjectStore args: namespace: "{{ .Namespace.Name }}" - image: "ghcr.io/kanisterio/kanister-tools:0.104.0" + image: "ghcr.io/kanisterio/kanister-tools:0.105.0" command: - bash - -o diff --git a/examples/foundationdb/README.md b/examples/foundationdb/README.md index 9a3f44bd67..832a52944e 100644 --- a/examples/foundationdb/README.md +++ b/examples/foundationdb/README.md @@ -24,7 +24,7 @@ cluster. on you cluster. * Kubernetes 1.9+ with Beta APIs enabled. * PV support on the underlying infrastructure. -* Kanister version 0.104.0 with `profiles.cr.kanister.io` CRD installed. +* Kanister version 0.105.0 with `profiles.cr.kanister.io` CRD installed. * Docker CLI installed * A docker image containing the required tools to back up FoundationDB. The Dockerfile for the image can be found [here](https://raw.githubusercontent.com/kanisterio/kanister/master/docker/foundationdb/Dockerfile). diff --git a/examples/foundationdb/blueprint-v2/foundationdb-blueprint.yaml b/examples/foundationdb/blueprint-v2/foundationdb-blueprint.yaml index cce729a869..8660e6e640 100644 --- a/examples/foundationdb/blueprint-v2/foundationdb-blueprint.yaml +++ b/examples/foundationdb/blueprint-v2/foundationdb-blueprint.yaml @@ -77,7 +77,7 @@ actions: name: deleteBackup args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 command: - bash - -o diff --git a/examples/k8ssandra/README.md b/examples/k8ssandra/README.md index 8fbc92bcb0..bc5b0b1ddb 100644 --- a/examples/k8ssandra/README.md +++ b/examples/k8ssandra/README.md @@ -8,7 +8,7 @@ K8ssandra operator uses Medusa to backup and restore Cassandra data. Kanister ca * Kubernetes 1.17+ * PV support on the underlying infrastructure -* Kanister controller version 0.104.0 installed in your cluster +* Kanister controller version 0.105.0 installed in your cluster * Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) * K8ssandra needs at least 4 cores and 8GB of RAM available to Docker and appropriate heap sizes for Cassandra and Stargate. If you don’t have those resources available, you can avoid deploying features such as monitoring, Reaper and Medusa, and also reduce the number of Cassandra nodes. diff --git a/examples/kafka/adobe-s3-connector/README.md b/examples/kafka/adobe-s3-connector/README.md index 94f20ea304..8a9c0eda31 100644 --- a/examples/kafka/adobe-s3-connector/README.md +++ b/examples/kafka/adobe-s3-connector/README.md @@ -6,7 +6,7 @@ During restore, topic messages are purged before the restore operation is perfor ## Prerequisites * Kubernetes 1.9+ -* Kanister controller version 0.104.0 installed in the cluster in a namespace . This example uses `kanister` namespace +* Kanister controller version 0.105.0 installed in the cluster in a namespace . This example uses `kanister` namespace * Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) ## Assumption diff --git a/examples/maria/blueprint-v2/maria-blueprint.yaml b/examples/maria/blueprint-v2/maria-blueprint.yaml index 0c781196e1..a092ec3eb3 100644 --- a/examples/maria/blueprint-v2/maria-blueprint.yaml +++ b/examples/maria/blueprint-v2/maria-blueprint.yaml @@ -19,7 +19,7 @@ actions: name: '{{ .StatefulSet.Name }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -53,7 +53,7 @@ actions: name: '{{ .StatefulSet.Name }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -76,7 +76,7 @@ actions: - func: KubeTask name: deleteFromStore args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/maria/maria-blueprint.yaml b/examples/maria/maria-blueprint.yaml index 362091da54..0b591f8329 100644 --- a/examples/maria/maria-blueprint.yaml +++ b/examples/maria/maria-blueprint.yaml @@ -17,7 +17,7 @@ actions: name: '{{ .StatefulSet.Name }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -49,7 +49,7 @@ actions: name: '{{ .StatefulSet.Name }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -69,7 +69,7 @@ actions: - func: KubeTask name: deleteFromBlobStore args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/mongo-sidecar/README.md b/examples/mongo-sidecar/README.md index f1e5480e4c..54d2fb5e5c 100644 --- a/examples/mongo-sidecar/README.md +++ b/examples/mongo-sidecar/README.md @@ -7,7 +7,7 @@ This is an example of using Kanister to backup and restore MongoDB. In this exam - Kubernetes 1.20+ - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster, let's assume in Namespace `kanister` +- Kanister controller version 0.105.0 installed in your cluster, let's assume in Namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) diff --git a/examples/mongodb-atlas/README.md b/examples/mongodb-atlas/README.md index 85cbc6fd03..9e567ed165 100644 --- a/examples/mongodb-atlas/README.md +++ b/examples/mongodb-atlas/README.md @@ -7,7 +7,7 @@ It deploys and scales a MongoDB cluster in the cloud. ## Prerequisites * Kubernetes 1.20+ -* Kanister controller version 0.104.0 installed in your cluster +* Kanister controller version 0.105.0 installed in your cluster * Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) * Already provisioned MongoDB Atlas cluster (https://www.mongodb.com/docs/atlas/getting-started) @@ -19,7 +19,7 @@ to install. ```bash $ helm repo add kanister https://charts.kanister.io $ helm install kanister --namespace kanister --create-namespace \ - kanister/kanister-operator --set image.tag=0.104.0 + kanister/kanister-operator --set image.tag=0.105.0 ``` ### Create Blueprint diff --git a/examples/mongodb-deploymentconfig/README.md b/examples/mongodb-deploymentconfig/README.md index c8fe798031..19b9c71a8d 100644 --- a/examples/mongodb-deploymentconfig/README.md +++ b/examples/mongodb-deploymentconfig/README.md @@ -14,7 +14,7 @@ cluster's DeploymentConfig resources. - Setup OpenShift, you can follow steps mentioned below - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster in namespace `kanister` +- Kanister controller version 0.105.0 installed in your cluster in namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) **Note** diff --git a/examples/mongodb-deploymentconfig/blueprint-v2/mongo-dep-config-blueprint.yaml b/examples/mongodb-deploymentconfig/blueprint-v2/mongo-dep-config-blueprint.yaml index 6bd3dd24d2..f52b9bf87a 100644 --- a/examples/mongodb-deploymentconfig/blueprint-v2/mongo-dep-config-blueprint.yaml +++ b/examples/mongodb-deploymentconfig/blueprint-v2/mongo-dep-config-blueprint.yaml @@ -20,7 +20,7 @@ actions: namespace: "{{ .DeploymentConfig.Namespace }}" args: namespace: "{{ .DeploymentConfig.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -50,7 +50,7 @@ actions: namespace: "{{ .DeploymentConfig.Namespace }}" args: namespace: "{{ .DeploymentConfig.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -75,7 +75,7 @@ actions: name: deleteFromStore args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o diff --git a/examples/mongodb-deploymentconfig/mongo-dep-config-blueprint.yaml b/examples/mongodb-deploymentconfig/mongo-dep-config-blueprint.yaml index d124b24fb7..22a651f79c 100644 --- a/examples/mongodb-deploymentconfig/mongo-dep-config-blueprint.yaml +++ b/examples/mongodb-deploymentconfig/mongo-dep-config-blueprint.yaml @@ -18,7 +18,7 @@ actions: namespace: "{{ .DeploymentConfig.Namespace }}" args: namespace: "{{ .DeploymentConfig.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -45,7 +45,7 @@ actions: namespace: "{{ .DeploymentConfig.Namespace }}" args: namespace: "{{ .DeploymentConfig.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -66,7 +66,7 @@ actions: name: deleteFromBlobStore args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o diff --git a/examples/mongodb-restic/README.md b/examples/mongodb-restic/README.md index 405c3b1ebc..80c84fa215 100644 --- a/examples/mongodb-restic/README.md +++ b/examples/mongodb-restic/README.md @@ -7,7 +7,7 @@ * Kubernetes 1.9+ * Kubernetes beta APIs enabled only if `podDisruptionBudget` is enabled * PV support on the underlying infrastructure -* Kanister controller version 0.104.0 installed in your cluster +* Kanister controller version 0.105.0 installed in your cluster * Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) ## Chart Details @@ -28,7 +28,7 @@ $ kubectl create namespace mongo-test $ helm install my-release bitnami/mongodb --namespace mongo-test \ --set architecture="replicaset" \ --set image.repository=ghcr.io/kanisterio/mongodb \ - --set image.tag=0.104.0 + --set image.tag=0.105.0 ``` The command deploys MongoDB on the Kubernetes cluster in the mongo-test namespace diff --git a/examples/mongodb-restic/mongodb-blueprint.yaml b/examples/mongodb-restic/mongodb-blueprint.yaml index 1c177e51c1..02c7fe90f9 100644 --- a/examples/mongodb-restic/mongodb-blueprint.yaml +++ b/examples/mongodb-restic/mongodb-blueprint.yaml @@ -39,7 +39,7 @@ actions: name: restorePrimary args: namespace: "{{ .StatefulSet.Namespace }}" - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 backupArtifactPrefix: "{{ .Profile.Location.Bucket }}/mongodb-backups/{{ .StatefulSet.Name }}/rs_backup" backupInfo: "{{ .ArtifactsIn.backupInfo.KeyValue.backupIdentifier }}" diff --git a/examples/mongodb/README.md b/examples/mongodb/README.md index 679e969a7e..3dda67ba2e 100644 --- a/examples/mongodb/README.md +++ b/examples/mongodb/README.md @@ -7,7 +7,7 @@ * Kubernetes 1.20+ * Kubernetes beta APIs enabled only if `podDisruptionBudget` is enabled * PV support on the underlying infrastructure -* Kanister controller version 0.104.0 installed in your cluster +* Kanister controller version 0.105.0 installed in your cluster * Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) ## Chart Details diff --git a/examples/mongodb/blueprint-v2/mongo-blueprint.yaml b/examples/mongodb/blueprint-v2/mongo-blueprint.yaml index c109e82d2a..e92c2077d4 100644 --- a/examples/mongodb/blueprint-v2/mongo-blueprint.yaml +++ b/examples/mongodb/blueprint-v2/mongo-blueprint.yaml @@ -20,7 +20,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -49,7 +49,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -74,7 +74,7 @@ actions: name: deleteFromStore args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o diff --git a/examples/mongodb/mongo-blueprint.yaml b/examples/mongodb/mongo-blueprint.yaml index a243c82784..7c5e58cec8 100644 --- a/examples/mongodb/mongo-blueprint.yaml +++ b/examples/mongodb/mongo-blueprint.yaml @@ -18,7 +18,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -44,7 +44,7 @@ actions: namespace: "{{ .StatefulSet.Namespace }}" args: namespace: "{{ .StatefulSet.Namespace }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o @@ -65,7 +65,7 @@ actions: name: deleteFromBlobStore args: namespace: "{{ .Namespace.Name }}" - image: ghcr.io/kanisterio/mongodb:0.104.0 + image: ghcr.io/kanisterio/mongodb:0.105.0 command: - bash - -o diff --git a/examples/mssql/README.md b/examples/mssql/README.md index 3ad9543f2d..489d6f302e 100644 --- a/examples/mssql/README.md +++ b/examples/mssql/README.md @@ -9,7 +9,7 @@ This document will cover how to install SQL Server and how to run backup/restore - Kubernetes 1.16+ with Beta APIs enabled - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster, let's assume in Namespace `kanister` +- Kanister controller version 0.105.0 installed in your cluster, let's assume in Namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) ## Installing Microsoft SQL Server diff --git a/examples/mssql/blueprint-v2/mssql-blueprint.yaml b/examples/mssql/blueprint-v2/mssql-blueprint.yaml index 124d8f3017..9a602546ae 100644 --- a/examples/mssql/blueprint-v2/mssql-blueprint.yaml +++ b/examples/mssql/blueprint-v2/mssql-blueprint.yaml @@ -16,7 +16,7 @@ actions: name: '{{ index .Object.metadata.labels "app" }}' namespace: '{{ .Deployment.Namespace }}' args: - image: ghcr.io/kanisterio/mssql-tools:0.104.0 + image: ghcr.io/kanisterio/mssql-tools:0.105.0 command: - bash - -o @@ -47,7 +47,7 @@ actions: name: '{{ index .Object.metadata.labels "app" }}' namespace: '{{ .Deployment.Namespace }}' args: - image: ghcr.io/kanisterio/mssql-tools:0.104.0 + image: ghcr.io/kanisterio/mssql-tools:0.105.0 command: - bash - -o @@ -74,7 +74,7 @@ actions: - func: KubeTask name: deleteFromBlobStore args: - image: ghcr.io/kanisterio/mssql-tools:0.104.0 + image: ghcr.io/kanisterio/mssql-tools:0.105.0 command: - bash - -o diff --git a/examples/mssql/mssql-blueprint.yaml b/examples/mssql/mssql-blueprint.yaml index 4d87da8bbd..24989470b9 100644 --- a/examples/mssql/mssql-blueprint.yaml +++ b/examples/mssql/mssql-blueprint.yaml @@ -14,7 +14,7 @@ actions: - func: KubeTask name: dumpToObjectStore args: - image: ghcr.io/kanisterio/mssql-tools:0.104.0 + image: ghcr.io/kanisterio/mssql-tools:0.105.0 command: - bash - -o @@ -45,7 +45,7 @@ actions: - func: KubeTask name: restoreFromObjectStore args: - image: ghcr.io/kanisterio/mssql-tools:0.104.0 + image: ghcr.io/kanisterio/mssql-tools:0.105.0 command: - bash - -o @@ -71,7 +71,7 @@ actions: - func: KubeTask name: deleteFromBlobStore args: - image: ghcr.io/kanisterio/mssql-tools:0.104.0 + image: ghcr.io/kanisterio/mssql-tools:0.105.0 command: - bash - -o diff --git a/examples/mysql-deploymentconfig/README.md b/examples/mysql-deploymentconfig/README.md index c970cbc125..15a308b1fb 100644 --- a/examples/mysql-deploymentconfig/README.md +++ b/examples/mysql-deploymentconfig/README.md @@ -14,7 +14,7 @@ cluster's DeploymentConfig resources. - Setup OpenShift, you can follow steps mentioned below - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster in namespace `kanister` +- Kanister controller version 0.105.0 installed in your cluster in namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) **Note** diff --git a/examples/mysql-deploymentconfig/blueprint-v2/mysql-dep-config-blueprint.yaml b/examples/mysql-deploymentconfig/blueprint-v2/mysql-dep-config-blueprint.yaml index 7fdc2f6d93..7df8b1a0cf 100644 --- a/examples/mysql-deploymentconfig/blueprint-v2/mysql-dep-config-blueprint.yaml +++ b/examples/mysql-deploymentconfig/blueprint-v2/mysql-dep-config-blueprint.yaml @@ -19,7 +19,7 @@ actions: name: "{{ .DeploymentConfig.Name }}" namespace: "{{ .DeploymentConfig.Namespace }}" args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .DeploymentConfig.Namespace }}" command: - bash @@ -47,7 +47,7 @@ actions: name: "{{ .DeploymentConfig.Name }}" namespace: "{{ .DeploymentConfig.Namespace }}" args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .DeploymentConfig.Namespace }}" command: - bash @@ -71,7 +71,7 @@ actions: - func: KubeTask name: deleteFromStore args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/mysql-deploymentconfig/mysql-dep-config-blueprint.yaml b/examples/mysql-deploymentconfig/mysql-dep-config-blueprint.yaml index c06516e160..c84c61bf14 100644 --- a/examples/mysql-deploymentconfig/mysql-dep-config-blueprint.yaml +++ b/examples/mysql-deploymentconfig/mysql-dep-config-blueprint.yaml @@ -17,7 +17,7 @@ actions: name: "{{ .DeploymentConfig.Name }}" namespace: "{{ .DeploymentConfig.Namespace }}" args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .DeploymentConfig.Namespace }}" command: - bash @@ -43,7 +43,7 @@ actions: name: "{{ .DeploymentConfig.Name }}" namespace: "{{ .DeploymentConfig.Namespace }}" args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .DeploymentConfig.Namespace }}" command: - bash @@ -63,7 +63,7 @@ actions: - func: KubeTask name: deleteFromBlobStore args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/mysql/README.md b/examples/mysql/README.md index 7d54a53489..bcab21230c 100755 --- a/examples/mysql/README.md +++ b/examples/mysql/README.md @@ -10,7 +10,7 @@ This chart bootstraps a single node MySQL deployment on a [Kubernetes](http://ku - Kubernetes 1.20+ - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster, let's assume in Namespace `kanister` +- Kanister controller version 0.105.0 installed in your cluster, let's assume in Namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) ## Installing the Chart diff --git a/examples/mysql/blueprint-v2/mysql-blueprint.yaml b/examples/mysql/blueprint-v2/mysql-blueprint.yaml index 6b81d3433c..60eaf0cbf7 100644 --- a/examples/mysql/blueprint-v2/mysql-blueprint.yaml +++ b/examples/mysql/blueprint-v2/mysql-blueprint.yaml @@ -19,7 +19,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -47,7 +47,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -71,7 +71,7 @@ actions: - func: KubeTask name: deleteFromStore args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/mysql/mysql-blueprint.yaml b/examples/mysql/mysql-blueprint.yaml index 44402b4199..d0f1a149b9 100644 --- a/examples/mysql/mysql-blueprint.yaml +++ b/examples/mysql/mysql-blueprint.yaml @@ -17,7 +17,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -43,7 +43,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .StatefulSet.Namespace }}" command: - bash @@ -63,7 +63,7 @@ actions: - func: KubeTask name: deleteFromBlobStore args: - image: ghcr.io/kanisterio/mysql-sidecar:0.104.0 + image: ghcr.io/kanisterio/mysql-sidecar:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/postgresql-deploymentconfig/README.md b/examples/postgresql-deploymentconfig/README.md index 9f9c549377..afe3d5fa1e 100644 --- a/examples/postgresql-deploymentconfig/README.md +++ b/examples/postgresql-deploymentconfig/README.md @@ -14,7 +14,7 @@ cluster's DeploymentConfig resources. - Setup OpenShift, you can follow steps mentioned below - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster in namespace `kanister` +- Kanister controller version 0.105.0 installed in your cluster in namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) diff --git a/examples/postgresql-deploymentconfig/blueprint-v2/postgres-dep-config-blueprint.yaml b/examples/postgresql-deploymentconfig/blueprint-v2/postgres-dep-config-blueprint.yaml index 9be77a2d0f..718cfdb139 100644 --- a/examples/postgresql-deploymentconfig/blueprint-v2/postgres-dep-config-blueprint.yaml +++ b/examples/postgresql-deploymentconfig/blueprint-v2/postgres-dep-config-blueprint.yaml @@ -20,7 +20,7 @@ actions: name: '{{ .DeploymentConfig.Name }}-{{ .DeploymentConfig.Namespace }}' namespace: '{{ .DeploymentConfig.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .DeploymentConfig.Namespace }}' command: - bash @@ -50,7 +50,7 @@ actions: name: '{{ .DeploymentConfig.Name }}-{{ .DeploymentConfig.Namespace }}' namespace: '{{ .DeploymentConfig.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .DeploymentConfig.Namespace }}' command: - bash @@ -75,7 +75,7 @@ actions: - func: KubeTask name: deleteDump args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/postgresql-deploymentconfig/postgres-dep-config-blueprint.yaml b/examples/postgresql-deploymentconfig/postgres-dep-config-blueprint.yaml index 0c8823e4ad..0ca2e0ffee 100644 --- a/examples/postgresql-deploymentconfig/postgres-dep-config-blueprint.yaml +++ b/examples/postgresql-deploymentconfig/postgres-dep-config-blueprint.yaml @@ -18,7 +18,7 @@ actions: name: '{{ .DeploymentConfig.Name }}-{{ .DeploymentConfig.Namespace }}' namespace: '{{ .DeploymentConfig.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .DeploymentConfig.Namespace }}' command: - bash @@ -47,7 +47,7 @@ actions: name: '{{ .DeploymentConfig.Name }}-{{ .DeploymentConfig.Namespace }}' namespace: '{{ .DeploymentConfig.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .DeploymentConfig.Namespace }}' command: - bash @@ -69,7 +69,7 @@ actions: - func: KubeTask name: deleteDump args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/postgresql-ha/hook-blueprint/README.md b/examples/postgresql-ha/hook-blueprint/README.md index 4a04cc5790..0fc49372d4 100644 --- a/examples/postgresql-ha/hook-blueprint/README.md +++ b/examples/postgresql-ha/hook-blueprint/README.md @@ -20,7 +20,7 @@ This blueprint is only required when you face above mentioned issue, else you wi - Kubernetes 1.10+ - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster +- Kanister controller version 0.105.0 installed in your cluster - Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) ## Installing the Chart diff --git a/examples/postgresql-ha/hook-blueprint/postgres-ha-hook.yaml b/examples/postgresql-ha/hook-blueprint/postgres-ha-hook.yaml index e554735538..9caa468d7d 100644 --- a/examples/postgresql-ha/hook-blueprint/postgres-ha-hook.yaml +++ b/examples/postgresql-ha/hook-blueprint/postgres-ha-hook.yaml @@ -26,7 +26,7 @@ actions: namespace: '{{ .StatefulSet.Namespace }}' args: namespace: '{{ .StatefulSet.Namespace }}' - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 command: - bash - -o diff --git a/examples/postgresql-wale/README.md b/examples/postgresql-wale/README.md index 51feddbbaf..ee1a04c937 100755 --- a/examples/postgresql-wale/README.md +++ b/examples/postgresql-wale/README.md @@ -12,7 +12,7 @@ Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment - Kubernetes 1.10+ - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster +- Kanister controller version 0.105.0 installed in your cluster - Kanctl CLI installed (https://docs.kanister.io/tooling.html#kanctl) ## Installing the Chart @@ -25,7 +25,7 @@ $ helm repo update $ helm install my-release bitnami/postgresql \ --namespace postgres-test --create-namespace \ --set image.repository=ghcr.io/kanisterio/postgresql \ - --set image.tag=0.104.0 \ + --set image.tag=0.105.0 \ --set postgresqlPassword=postgres-12345 \ --set postgresqlExtendedConf.archiveCommand="'envdir /bitnami/postgresql/data/env wal-e wal-push %p'" \ --set postgresqlExtendedConf.archiveMode=true \ @@ -41,7 +41,7 @@ In case, if you don't have `Kanister` installed already, you can use following c Add Kanister Helm repository and install Kanister operator ```bash $ helm repo add kanister https://charts.kanister.io -$ helm install kanister --namespace kanister --create-namespace kanister/kanister-operator --set image.tag=0.104.0 +$ helm install kanister --namespace kanister --create-namespace kanister/kanister-operator --set image.tag=0.105.0 ``` ## Integrating with Kanister diff --git a/examples/postgresql-wale/postgresql-blueprint.yaml b/examples/postgresql-wale/postgresql-blueprint.yaml index 19e3a18da1..e9f9c285e3 100644 --- a/examples/postgresql-wale/postgresql-blueprint.yaml +++ b/examples/postgresql-wale/postgresql-blueprint.yaml @@ -132,7 +132,7 @@ actions: - func: PrepareData name: performRestore args: - image: "ghcr.io/kanisterio/postgresql:0.104.0" + image: "ghcr.io/kanisterio/postgresql:0.105.0" namespace: "{{ .StatefulSet.Namespace }}" volumes: "data-{{ .StatefulSet.Name }}-0": "/bitnami/postgresql" @@ -282,7 +282,7 @@ actions: name: deleteArtifact args: namespace: "{{ .Namespace.Name }}" - image: "ghcr.io/kanisterio/postgresql:0.104.0" + image: "ghcr.io/kanisterio/postgresql:0.105.0" command: - bash - -o diff --git a/examples/postgresql/README.md b/examples/postgresql/README.md index b94de6ccfd..50b2dcb18c 100755 --- a/examples/postgresql/README.md +++ b/examples/postgresql/README.md @@ -12,7 +12,7 @@ Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment - Kubernetes 1.20+ - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster +- Kanister controller version 0.105.0 installed in your cluster - Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) ## Installing the Chart @@ -34,7 +34,7 @@ In case, if you don't have `Kanister` installed already, you can use following c Add Kanister Helm repository and install Kanister operator ```bash $ helm repo add kanister https://charts.kanister.io -$ helm install kanister --namespace kanister --create-namespace kanister/kanister-operator --set image.tag=0.104.0 +$ helm install kanister --namespace kanister --create-namespace kanister/kanister-operator --set image.tag=0.105.0 ``` ## Integrating with Kanister diff --git a/examples/postgresql/blueprint-v2/postgres-blueprint.yaml b/examples/postgresql/blueprint-v2/postgres-blueprint.yaml index 199ba7b4f4..94cf290d00 100644 --- a/examples/postgresql/blueprint-v2/postgres-blueprint.yaml +++ b/examples/postgresql/blueprint-v2/postgres-blueprint.yaml @@ -20,7 +20,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}-postgresql' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .StatefulSet.Namespace }}' command: - bash @@ -50,7 +50,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}-postgresql' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .StatefulSet.Namespace }}' command: - bash @@ -75,7 +75,7 @@ actions: - func: KubeTask name: deleteDump args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/postgresql/postgres-blueprint.yaml b/examples/postgresql/postgres-blueprint.yaml index aad7ecebbf..fa824eb1f7 100644 --- a/examples/postgresql/postgres-blueprint.yaml +++ b/examples/postgresql/postgres-blueprint.yaml @@ -18,7 +18,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}-postgresql' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .StatefulSet.Namespace }}' command: - bash @@ -47,7 +47,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}-postgresql' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .StatefulSet.Namespace }}' command: - bash @@ -69,7 +69,7 @@ actions: - func: KubeTask name: deleteDump args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/postgresql/v10.16.2/postgres-blueprint.yaml b/examples/postgresql/v10.16.2/postgres-blueprint.yaml index 6cd7fa55c8..39315717a1 100644 --- a/examples/postgresql/v10.16.2/postgres-blueprint.yaml +++ b/examples/postgresql/v10.16.2/postgres-blueprint.yaml @@ -18,7 +18,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}-postgresql' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .StatefulSet.Namespace }}' command: - bash @@ -47,7 +47,7 @@ actions: name: '{{ index .Object.metadata.labels "app.kubernetes.io/instance" }}-postgresql' namespace: '{{ .StatefulSet.Namespace }}' args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: '{{ .StatefulSet.Namespace }}' command: - bash @@ -69,7 +69,7 @@ actions: - func: KubeTask name: deleteDump args: - image: ghcr.io/kanisterio/postgres-kanister-tools:0.104.0 + image: ghcr.io/kanisterio/postgres-kanister-tools:0.105.0 namespace: "{{ .Namespace.Name }}" command: - bash diff --git a/examples/redis/README.md b/examples/redis/README.md index 74c8647650..45a8cec006 100644 --- a/examples/redis/README.md +++ b/examples/redis/README.md @@ -11,7 +11,7 @@ We will be using [Redis](https://github.com/bitnami/charts/tree/main/bitnami/red - Kubernetes 1.20+ - PV provisioner support in the underlying infrastructure -- Kanister controller version 0.104.0 installed in your cluster, let's assume in Namespace `kanister` +- Kanister controller version 0.105.0 installed in your cluster, let's assume in Namespace `kanister` - Kanctl CLI installed (https://docs.kanister.io/tooling.html#install-the-tools) - Docker CLI installed - A docker image containing the required tools to back up Redis. The Dockerfile for the image can be found [here](https://raw.githubusercontent.com/kanisterio/kanister/master/docker/redis-tools/Dockerfile). To build and push the docker image to your docker registry, execute [these](#build-docker-image) steps. diff --git a/examples/time-log/blueprint.yaml b/examples/time-log/blueprint.yaml index 5529a4abe5..e046f3807c 100644 --- a/examples/time-log/blueprint.yaml +++ b/examples/time-log/blueprint.yaml @@ -38,7 +38,7 @@ actions: args: namespace: "{{ .Deployment.Namespace }}" pod: "{{ index .Deployment.Pods 0 }}" - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 backupArtifactPrefix: "{{ .ArtifactsIn.timeLog.KeyValue.path }}" backupIdentifier: "{{ .ArtifactsIn.backupIdentifier.KeyValue.id }}" - func: ScaleWorkload diff --git a/examples/time-log/time-logger-deployment.yaml b/examples/time-log/time-logger-deployment.yaml index 83639495cf..6edeb03e89 100644 --- a/examples/time-log/time-logger-deployment.yaml +++ b/examples/time-log/time-logger-deployment.yaml @@ -27,7 +27,7 @@ spec: spec: containers: - name: test-container - image: ghcr.io/kanisterio/kanister-tools:0.104.0 + image: ghcr.io/kanisterio/kanister-tools:0.105.0 command: ["sh", "-c"] args: ["while true; do for x in $(seq 1200); do date >> /var/log/time.log; sleep 1; done; truncate /var/log/time.log --size 0; done"] volumeMounts: diff --git a/helm/kanister-operator/Chart.yaml b/helm/kanister-operator/Chart.yaml index de932a1fd2..81ffe26d24 100644 --- a/helm/kanister-operator/Chart.yaml +++ b/helm/kanister-operator/Chart.yaml @@ -9,5 +9,5 @@ maintainers: - email: tom@kasten.io name: tdmanv icon: https://kasten.io/assets/img/kanister-logo.png -appVersion: 0.104.0 +appVersion: 0.105.0 source: https://github.com/kanisterio/kanister diff --git a/helm/kanister-operator/values.yaml b/helm/kanister-operator/values.yaml index 70c7d0fcb5..8655cea157 100644 --- a/helm/kanister-operator/values.yaml +++ b/helm/kanister-operator/values.yaml @@ -3,17 +3,17 @@ # Declare variables to be passed into your templates. image: repository: ghcr.io/kanisterio/controller - tag: 0.104.0 + tag: 0.105.0 pullPolicy: IfNotPresent repositoryServerControllerImage: registry: ghcr.io/kanisterio name: repo-server-controller - tag: 0.104.0 + tag: 0.105.0 pullPolicy: IfNotPresent kanisterToolsImage: override: false image: ghcr.io/kanisterio/kanister-tools - tag: 0.104.0 + tag: 0.105.0 rbac: create: true serviceAccount: diff --git a/helm/profile/Chart.yaml b/helm/profile/Chart.yaml index 535c70ebb1..470013fd09 100644 --- a/helm/profile/Chart.yaml +++ b/helm/profile/Chart.yaml @@ -3,7 +3,7 @@ description: A helm chart to create profile custom resource for kanister engine: gotpl name: profile home: https://kanister.io/ -version: 0.104.0 +version: 0.105.0 maintainers: - email: tom@kasten.io name: tdmanv diff --git a/pkg/app/csi-snapshot.go b/pkg/app/csi-snapshot.go index 19b69807f6..b5891bbbb9 100644 --- a/pkg/app/csi-snapshot.go +++ b/pkg/app/csi-snapshot.go @@ -192,7 +192,7 @@ func (tlc TimeLogCSI) getAppDeploymentObj() *appsv1.Deployment { Containers: []corev1.Container{ { Name: "test-container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"sh", "-c"}, Args: []string{"while true; do for x in $(seq 1200); do date >> /var/log/time.log; sleep 1; done; truncate /var/log/time.log --size 0; done"}, VolumeMounts: []corev1.VolumeMount{ diff --git a/pkg/consts/consts.go b/pkg/consts/consts.go index c4961d9147..c7e714d49d 100644 --- a/pkg/consts/consts.go +++ b/pkg/consts/consts.go @@ -43,7 +43,7 @@ const RepositoryServerResourceName = "repositoryserver" const RepositoryServerResourceNamePlural = "repositoryservers" const LatestKanisterToolsImage = "ghcr.io/kanisterio/kanister-tools:v9.99.9-dev" -const KanisterToolsImage = "ghcr.io/kanisterio/kanister-tools:0.104.0" +const KanisterToolsImage = "ghcr.io/kanisterio/kanister-tools:0.105.0" // KanisterToolsImageEnvName is used to set up a custom kanister-tools image const KanisterToolsImageEnvName = "KANISTER_TOOLS" diff --git a/pkg/function/data_test.go b/pkg/function/data_test.go index 64254a6a27..6ec5e9fbb2 100644 --- a/pkg/function/data_test.go +++ b/pkg/function/data_test.go @@ -135,7 +135,7 @@ func newRestoreDataBlueprint(pvc, identifierArg, identifierVal string) *crv1alph Func: RestoreDataFuncName, Args: map[string]interface{}{ RestoreDataNamespaceArg: "{{ .StatefulSet.Namespace }}", - RestoreDataImageArg: "ghcr.io/kanisterio/kanister-tools:0.104.0", + RestoreDataImageArg: "ghcr.io/kanisterio/kanister-tools:0.105.0", RestoreDataBackupArtifactPrefixArg: "{{ .Profile.Location.Bucket }}/{{ .Profile.Location.Prefix }}", RestoreDataRestorePathArg: "/mnt/data", RestoreDataEncryptionKeyArg: "{{ .Secrets.backupKey.Data.password | toString }}", @@ -247,7 +247,7 @@ func newRestoreDataAllBlueprint() *crv1alpha1.Blueprint { Func: RestoreDataAllFuncName, Args: map[string]interface{}{ RestoreDataAllNamespaceArg: "{{ .StatefulSet.Namespace }}", - RestoreDataAllImageArg: "ghcr.io/kanisterio/kanister-tools:0.104.0", + RestoreDataAllImageArg: "ghcr.io/kanisterio/kanister-tools:0.105.0", RestoreDataAllBackupArtifactPrefixArg: "{{ .Profile.Location.Bucket }}/{{ .Profile.Location.Prefix }}", RestoreDataAllBackupInfo: fmt.Sprintf("{{ .Options.%s }}", BackupDataAllOutput), RestoreDataAllRestorePathArg: "/mnt/data", @@ -458,7 +458,7 @@ func newCopyDataTestBlueprint() crv1alpha1.Blueprint { Func: RestoreDataFuncName, Args: map[string]interface{}{ RestoreDataNamespaceArg: "{{ .PVC.Namespace }}", - RestoreDataImageArg: "ghcr.io/kanisterio/kanister-tools:0.104.0", + RestoreDataImageArg: "ghcr.io/kanisterio/kanister-tools:0.105.0", RestoreDataBackupArtifactPrefixArg: fmt.Sprintf("{{ .Options.%s }}", CopyVolumeDataOutputBackupArtifactLocation), RestoreDataBackupTagArg: fmt.Sprintf("{{ .Options.%s }}", CopyVolumeDataOutputBackupTag), RestoreDataVolsArg: map[string]string{ diff --git a/pkg/function/export_rds_snapshot_location.go b/pkg/function/export_rds_snapshot_location.go index e9d718ef13..f198c86a9c 100644 --- a/pkg/function/export_rds_snapshot_location.go +++ b/pkg/function/export_rds_snapshot_location.go @@ -64,7 +64,7 @@ const ( BackupAction RDSAction = "backup" RestoreAction RDSAction = "restore" - postgresToolsImage = "ghcr.io/kanisterio/postgres-kanister-tools:0.104.0" + postgresToolsImage = "ghcr.io/kanisterio/postgres-kanister-tools:0.105.0" ) type exportRDSSnapshotToLocationFunc struct { diff --git a/pkg/function/kube_exec_test.go b/pkg/function/kube_exec_test.go index c5861b5d3d..00df224819 100644 --- a/pkg/function/kube_exec_test.go +++ b/pkg/function/kube_exec_test.go @@ -179,11 +179,11 @@ func (s *KubeExecTest) TestParseLogAndCreateOutput(c *C) { errChecker Checker outChecker Checker }{ - {"###Phase-output###: {\"key\":\"version\",\"value\":\"0.104.0\"}", map[string]interface{}{"version": "0.104.0"}, IsNil, NotNil}, - {"###Phase-output###: {\"key\":\"version\",\"value\":\"0.104.0\"}\n###Phase-output###: {\"key\":\"path\",\"value\":\"/backup/path\"}", - map[string]interface{}{"version": "0.104.0", "path": "/backup/path"}, IsNil, NotNil}, - {"Random message ###Phase-output###: {\"key\":\"version\",\"value\":\"0.104.0\"}", map[string]interface{}{"version": "0.104.0"}, IsNil, NotNil}, - {"Random message with newline \n###Phase-output###: {\"key\":\"version\",\"value\":\"0.104.0\"}", map[string]interface{}{"version": "0.104.0"}, IsNil, NotNil}, + {"###Phase-output###: {\"key\":\"version\",\"value\":\"0.105.0\"}", map[string]interface{}{"version": "0.105.0"}, IsNil, NotNil}, + {"###Phase-output###: {\"key\":\"version\",\"value\":\"0.105.0\"}\n###Phase-output###: {\"key\":\"path\",\"value\":\"/backup/path\"}", + map[string]interface{}{"version": "0.105.0", "path": "/backup/path"}, IsNil, NotNil}, + {"Random message ###Phase-output###: {\"key\":\"version\",\"value\":\"0.105.0\"}", map[string]interface{}{"version": "0.105.0"}, IsNil, NotNil}, + {"Random message with newline \n###Phase-output###: {\"key\":\"version\",\"value\":\"0.105.0\"}", map[string]interface{}{"version": "0.105.0"}, IsNil, NotNil}, {"###Phase-output###: Invalid message", nil, NotNil, IsNil}, {"Random message", nil, IsNil, IsNil}, } { diff --git a/pkg/function/kube_task_test.go b/pkg/function/kube_task_test.go index ccc94c0f32..f45b0383c3 100644 --- a/pkg/function/kube_task_test.go +++ b/pkg/function/kube_task_test.go @@ -71,7 +71,7 @@ func outputPhase(namespace string) crv1alpha1.BlueprintPhase { KubeTaskCommandArg: []string{ "sh", "-c", - "kando output version 0.104.0", + "kando output version 0.105.0", }, }, } @@ -144,7 +144,7 @@ func (s *KubeTaskSuite) TestKubeTask(c *C) { bp: newTaskBlueprint(outputPhase(s.namespace), sleepPhase(s.namespace), tickPhase(s.namespace)), outs: []map[string]interface{}{ { - "version": "0.104.0", + "version": "0.105.0", }, {}, {}, diff --git a/pkg/kube/pod_test.go b/pkg/kube/pod_test.go index 44674f3538..786b706794 100644 --- a/pkg/kube/pod_test.go +++ b/pkg/kube/pod_test.go @@ -464,7 +464,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"sh", "-c", "echo in default specs"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ @@ -510,7 +510,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"sh", "-c", "echo in default specs"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ @@ -550,7 +550,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"sh", "-c", "echo in default specs"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ @@ -604,7 +604,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"sh", "-c", "echo in default specs"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ @@ -665,7 +665,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"sh", "-c", "echo in default specs"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ @@ -728,7 +728,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"echo", "override command"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ @@ -768,7 +768,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"echo", "override command"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ @@ -811,7 +811,7 @@ func (s *PodSuite) TestPatchDefaultPodSpecs(c *C) { Containers: []corev1.Container{ { Name: "container", - Image: "ghcr.io/kanisterio/kanister-tools:0.104.0", + Image: "ghcr.io/kanisterio/kanister-tools:0.105.0", Command: []string{"sh", "-c", "echo in default specs"}, ImagePullPolicy: corev1.PullPolicy(corev1.PullIfNotPresent), VolumeMounts: []corev1.VolumeMount{ diff --git a/pkg/testing/e2e_test.go b/pkg/testing/e2e_test.go index 08eaf93394..93de312c40 100644 --- a/pkg/testing/e2e_test.go +++ b/pkg/testing/e2e_test.go @@ -228,7 +228,7 @@ func (s *E2ESuite) TestKubeTask(c *C) { Func: function.KubeTaskFuncName, Name: "test-kube-task", Args: map[string]interface{}{ - "image": "ghcr.io/kanisterio/kanister-tools:0.104.0", + "image": "ghcr.io/kanisterio/kanister-tools:0.105.0", "namespace": "{{ .Deployment.Namespace }}", "command": []string{"echo", "default specs"}, "podOverride": map[string]interface{}{ diff --git a/scripts/get.sh b/scripts/get.sh index 7125612288..cb3092e1bf 100755 --- a/scripts/get.sh +++ b/scripts/get.sh @@ -140,7 +140,7 @@ cleanup() { } main() { - version="${1:-"0.104.0"}" + version="${1:-"0.105.0"}" initArch initOS verifySupported From d39e2536a403eb2922ee6d567b81b4705a036bdf Mon Sep 17 00:00:00 2001 From: InfraQ <63741182+infraq@users.noreply.github.com> Date: Sun, 28 Jan 2024 23:28:56 -0800 Subject: [PATCH 06/17] Update ubi-minimal base image to ubi-minimal:9.3-1552 (#2633) Co-authored-by: Kasten Production --- Dockerfile.in | 2 +- docker/controller/Dockerfile | 2 +- docker/mongodb-atlas/Dockerfile | 2 +- docker/tools/Dockerfile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.in b/Dockerfile.in index a42ddb4929..e1738e065f 100644 --- a/Dockerfile.in +++ b/Dockerfile.in @@ -1,4 +1,4 @@ -ARG base_image=registry.access.redhat.com/ubi9/ubi-minimal:9.3-1475 +ARG base_image=registry.access.redhat.com/ubi9/ubi-minimal:9.3-1552 FROM ${base_image} ARG kanister_version diff --git a/docker/controller/Dockerfile b/docker/controller/Dockerfile index d5fc802f04..a9afaf7d4f 100644 --- a/docker/controller/Dockerfile +++ b/docker/controller/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/ubi-minimal:9.3-1475 +FROM registry.access.redhat.com/ubi9/ubi-minimal:9.3-1552 LABEL maintainer="Tom Manville" diff --git a/docker/mongodb-atlas/Dockerfile b/docker/mongodb-atlas/Dockerfile index 6b3d3477b4..8cd9f6e590 100644 --- a/docker/mongodb-atlas/Dockerfile +++ b/docker/mongodb-atlas/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/ubi-minimal:9.3-1475 +FROM registry.access.redhat.com/ubi9/ubi-minimal:9.3-1552 RUN cat >/etc/yum.repos.d/mongodb.repo < Date: Mon, 29 Jan 2024 17:49:56 +0000 Subject: [PATCH 07/17] deps(go): bump the k8s group with 4 updates (#2620) Bumps the k8s group with 4 updates: [k8s.io/api](https://github.com/kubernetes/api), [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver), [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) and [k8s.io/kubectl](https://github.com/kubernetes/kubectl). Updates `k8s.io/api` from 0.26.12 to 0.26.13 - [Commits](https://github.com/kubernetes/api/compare/v0.26.12...v0.26.13) Updates `k8s.io/apiextensions-apiserver` from 0.26.12 to 0.26.13 - [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases) - [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.26.12...v0.26.13) Updates `k8s.io/cli-runtime` from 0.26.12 to 0.26.13 - [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.26.12...v0.26.13) Updates `k8s.io/kubectl` from 0.26.12 to 0.26.13 - [Commits](https://github.com/kubernetes/kubectl/compare/v0.26.12...v0.26.13) --- updated-dependencies: - dependency-name: k8s.io/api dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s - dependency-name: k8s.io/apiextensions-apiserver dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s - dependency-name: k8s.io/cli-runtime dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s - dependency-name: k8s.io/kubectl dependency-type: direct:production update-type: version-update:semver-patch dependency-group: k8s ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 16 ++++++++-------- go.sum | 32 ++++++++++++++++---------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/go.mod b/go.mod index 63c24e8619..9d20bccb82 100644 --- a/go.mod +++ b/go.mod @@ -52,14 +52,14 @@ require ( gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 //pinned k8s.io to v0.26.x tag - k8s.io/api v0.26.12 - k8s.io/apiextensions-apiserver v0.26.12 - k8s.io/apimachinery v0.26.12 - k8s.io/cli-runtime v0.26.12 - k8s.io/client-go v0.26.12 - k8s.io/code-generator v0.26.12 + k8s.io/api v0.26.13 + k8s.io/apiextensions-apiserver v0.26.13 + k8s.io/apimachinery v0.26.13 + k8s.io/cli-runtime v0.26.13 + k8s.io/client-go v0.26.13 + k8s.io/code-generator v0.26.13 k8s.io/kube-openapi v0.0.0-20230109183929-3758b55a6596 - k8s.io/kubectl v0.26.12 + k8s.io/kubectl v0.26.13 k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 sigs.k8s.io/controller-runtime v0.14.7 sigs.k8s.io/yaml v1.3.0 @@ -207,7 +207,7 @@ require ( gopkg.in/kothar/go-backblaze.v0 v0.0.0-20210124194846-35409b867216 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/component-base v0.26.12 // indirect + k8s.io/component-base v0.26.13 // indirect k8s.io/gengo v0.0.0-20220902162205-c0856e24416d // indirect k8s.io/klog/v2 v2.90.1 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect diff --git a/go.sum b/go.sum index c893fea818..fa2e3c8aef 100644 --- a/go.sum +++ b/go.sum @@ -839,23 +839,23 @@ honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/api v0.19.0/go.mod h1:I1K45XlvTrDjmj5LoM5LuP/KYrhWbjUKT/SoPG0qTjw= -k8s.io/api v0.26.12 h1:jJm3s5ot05SUN3tPGg3b+XWuBE7rO/X0+dnVMhxyd5o= -k8s.io/api v0.26.12/go.mod h1:N+HUXukmtXNOKDngxXrEPbZWggWx01tH/N0nG4nV0oo= -k8s.io/apiextensions-apiserver v0.26.12 h1:WHfFheB9AM0eHZsz6wu2h/KVmZ8PM7ZAmNDr3smkUzA= -k8s.io/apiextensions-apiserver v0.26.12/go.mod h1:bvr3OVCML7icxP4rq/fJaNBPPiZ9KIi79n/icBbg5Rc= +k8s.io/api v0.26.13 h1:65j5feDeimcvWLjxYyiSmCpQrV4cArU3DJQjAtPOmos= +k8s.io/api v0.26.13/go.mod h1:VXIh4xfQZf+gHowQ43lFgohkElTBwZ8hQjikp1Bkm2c= +k8s.io/apiextensions-apiserver v0.26.13 h1:eb4fGFYWU5IX+BdajL8lPrxk+TutekKPuHkHYpM1waE= +k8s.io/apiextensions-apiserver v0.26.13/go.mod h1:Ux/bcBgpMd0po5Mo2Z3Mez6gMvjzKMWQi/zHUnLn5uw= k8s.io/apimachinery v0.19.0/go.mod h1:DnPGDnARWFvYa3pMHgSxtbZb7gpzzAZ1pTfaUNDVlmA= -k8s.io/apimachinery v0.26.12 h1:y+OgufxqLIZtyXIydRhjLBGzrYLF+qwiDdCFXYOjeN4= -k8s.io/apimachinery v0.26.12/go.mod h1:2/HZp0l6coXtS26du1Bk36fCuAEr/lVs9Q9NbpBtd1Y= -k8s.io/cli-runtime v0.26.12 h1:g0h59NrpXbjxokffyVQTt8j6XtZLfcqxsLiPrNE40VU= -k8s.io/cli-runtime v0.26.12/go.mod h1:g1q8WlUHIN6v1O+S9fH6gsp6vscWAL37vlMpVFbqm4I= +k8s.io/apimachinery v0.26.13 h1:gTwNkZp+qrfZuhQFMD594ggzvcr06mbgAtLBTbdc4Mg= +k8s.io/apimachinery v0.26.13/go.mod h1:2/HZp0l6coXtS26du1Bk36fCuAEr/lVs9Q9NbpBtd1Y= +k8s.io/cli-runtime v0.26.13 h1:AlCgVRSoGurQiGkBNSmuhsXQvETFkLCt4z3oMbePh+M= +k8s.io/cli-runtime v0.26.13/go.mod h1:chzLqnjDiOz8kBqD2isZ9WmeI5KIkdbojouiyq1LQpA= k8s.io/client-go v0.19.0/go.mod h1:H9E/VT95blcFQnlyShFgnFT9ZnJOAceiUHM3MlRC+mU= -k8s.io/client-go v0.26.12 h1:kPpTpIeFNqwo4UyvoqzNp3DNK2mbGcdGv23eS1U8VMo= -k8s.io/client-go v0.26.12/go.mod h1:V7thEnIFroyNZOU30dKLiiVeqQmJz45shJG1mu7nONQ= +k8s.io/client-go v0.26.13 h1:KBIXrz1Rbkuq586BOWoGuNi79pGJM4uAbYg8F83u0Vk= +k8s.io/client-go v0.26.13/go.mod h1:Cc2v7fVnJ1a9wj11fv12fhoFIjqbZT/Ksono6bK0iw8= k8s.io/code-generator v0.19.0/go.mod h1:moqLn7w0t9cMs4+5CQyxnfA/HV8MF6aAVENF+WZZhgk= -k8s.io/code-generator v0.26.12 h1:ocY1oVBBsiWvvSVldkRVBHOLL6qH+trXzyQRKj0T2Qg= -k8s.io/code-generator v0.26.12/go.mod h1:Hjxj7hpvSxcNnYIWzCSuEdwN0/9aHlezQRKJXr0Kv8U= -k8s.io/component-base v0.26.12 h1:OyYjCtruv4/Yau5Z1v6e59N+JRDTj8JnW95W9w9AMpg= -k8s.io/component-base v0.26.12/go.mod h1:X98Et5BxJ8i4TcDusUcKS8EYxCujBU1lCL3pc/CUtHQ= +k8s.io/code-generator v0.26.13 h1:NJHHp+HFh4lRQrmDvPHQZpZqCVWVS0KS6PKfQC23vSc= +k8s.io/code-generator v0.26.13/go.mod h1:Hjxj7hpvSxcNnYIWzCSuEdwN0/9aHlezQRKJXr0Kv8U= +k8s.io/component-base v0.26.13 h1:NiygriNjTaEhbv0P6h49GXnKG0cELGcQywFs8ITUSK4= +k8s.io/component-base v0.26.13/go.mod h1:ptCvZ+D/a0ojYB5QV+dn4qGM8oBoRaCV/iDBIY+p3ao= k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20220902162205-c0856e24416d h1:U9tB195lKdzwqicbJvyJeOXV7Klv+wNAWENRnXEGi08= @@ -867,8 +867,8 @@ k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= k8s.io/kube-openapi v0.0.0-20230109183929-3758b55a6596 h1:8cNCQs+WqqnSpZ7y0LMQPKD+RZUHU17VqLPMW3qxnxc= k8s.io/kube-openapi v0.0.0-20230109183929-3758b55a6596/go.mod h1:/BYxry62FuDzmI+i9B+X2pqfySRmSOW2ARmj5Zbqhj0= -k8s.io/kubectl v0.26.12 h1:wEPsNNHT4THWxoIYgJVhx6ok7lVnbJdJW0Pjl9QS6wc= -k8s.io/kubectl v0.26.12/go.mod h1:0O8moTv0xcYVuimWIaxRJLQY6h+e7O+cANf5jhEpW1o= +k8s.io/kubectl v0.26.13 h1:SgqWe3vOv+Xwg3unGWTYg3lTiTE5lfZZW7pTHdCejJU= +k8s.io/kubectl v0.26.13/go.mod h1:UmBryo5CqlFzOi8xS7We27ridrX8aoKLQEuULvHQaWM= k8s.io/utils v0.0.0-20200729134348-d5654de09c73/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 h1:qY1Ad8PODbnymg2pRbkyMT/ylpTrCM8P2RJ0yroCyIk= k8s.io/utils v0.0.0-20230406110748-d93618cff8a2/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= From aec073be704d13f9959e077cd68243be7106b986 Mon Sep 17 00:00:00 2001 From: Daniil Fedotov Date: Mon, 29 Jan 2024 17:08:35 -0500 Subject: [PATCH 08/17] ci: Run vulnerability scanner after release build (#2599) --- .github/workflows/grype-vulnerability-scanner.yaml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/grype-vulnerability-scanner.yaml b/.github/workflows/grype-vulnerability-scanner.yaml index 6589cf135c..31cc725018 100644 --- a/.github/workflows/grype-vulnerability-scanner.yaml +++ b/.github/workflows/grype-vulnerability-scanner.yaml @@ -1,5 +1,13 @@ name: container vulnerability scanning -on: [workflow_dispatch] +on: + workflow_dispatch: + workflow_run: + workflows: ["Build and test"] + types: + - completed + branches: + - master + jobs: vulnerability-scanner: runs-on: ubuntu-20.04 From 3c419396741556c1f34951dee93861255fb5de6b Mon Sep 17 00:00:00 2001 From: Rajat Gupta <37516416+r4rajat@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:09:51 +0530 Subject: [PATCH 09/17] New Parameter *insecureTLS* for kanister functions using restic (#2589) * Update Dockerfiles to use latest version of the restic to support --insecure-tls flag Signed-off-by: Rajat Gupta * Update restic wrappers to support insecureTLS Flag Signed-off-by: Rajat Gupta * Update function BackupData for insecureTLS support Signed-off-by: Rajat Gupta * Update function BackupDataAll for insecureTLS support Signed-off-by: Rajat Gupta * Update function CheckRepository for insecureTLS support Signed-off-by: Rajat Gupta * Update function CopyVolumeData for insecureTLS support Signed-off-by: Rajat Gupta * Update function DeleteData for insecureTLS support Signed-off-by: Rajat Gupta * Update function DeleteDataAll for insecureTLS support Signed-off-by: Rajat Gupta * Update function RestoreData for insecureTLS support Signed-off-by: Rajat Gupta * Update function RestoreDataAll for insecureTLS support Signed-off-by: Rajat Gupta * Update tests for Restore Data Signed-off-by: Rajat Gupta * Update Documentation for Kanister Functions (#2610) Signed-off-by: Rajat Gupta --------- Signed-off-by: Rajat Gupta Co-authored-by: Pavan Navarathna <6504783+pavannd1@users.noreply.github.com> --- .../image/Dockerfile | 2 +- docs/functions.rst | 7 +++ pkg/function/backup_data.go | 15 ++++-- pkg/function/backup_data_all.go | 12 +++-- pkg/function/checkRepository.go | 14 +++-- pkg/function/copy_volume_data.go | 14 +++-- pkg/function/delete_data.go | 20 ++++--- pkg/function/delete_data_all.go | 7 ++- pkg/function/restore_data.go | 40 ++++++++------ pkg/function/restore_data_all.go | 24 +++++---- pkg/function/restore_data_test.go | 2 +- pkg/restic/restic.go | 54 +++++++++++++------ 12 files changed, 148 insertions(+), 63 deletions(-) diff --git a/docker/kanister-mongodb-replicaset/image/Dockerfile b/docker/kanister-mongodb-replicaset/image/Dockerfile index 527ee47e35..f1b333e38b 100755 --- a/docker/kanister-mongodb-replicaset/image/Dockerfile +++ b/docker/kanister-mongodb-replicaset/image/Dockerfile @@ -7,6 +7,6 @@ ADD . /kanister RUN /kanister/install.sh && rm -rf /kanister && rm -rf /tmp && mkdir /tmp -COPY --from=restic/restic:0.11.0 /usr/bin/restic /usr/local/bin/restic +COPY --from=restic/restic:0.16.2 /usr/bin/restic /usr/local/bin/restic CMD ["tail", "-f", "/dev/null"] diff --git a/docs/functions.rst b/docs/functions.rst index 23cb82941a..5404bd5de4 100644 --- a/docs/functions.rst +++ b/docs/functions.rst @@ -306,6 +306,7 @@ Arguments: `includePath`, Yes, `string`, path of the data to be backed up `backupArtifactPrefix`, Yes, `string`, path to store the backup on the object store `encryptionKey`, No, `string`, encryption key to be used for backups + `insecureTLS`, No, `bool`, enables insecure connection for data mover Outputs: @@ -368,6 +369,7 @@ Arguments: `includePath`, Yes, `string`, path of the data to be backed up `backupArtifactPrefix`, Yes, `string`, path to store the backup on the object store appended by pod name later `encryptionKey`, No, `string`, encryption key to be used for backups + `insecureTLS`, No, `bool`, enables insecure connection for data mover Outputs: @@ -430,6 +432,7 @@ and restores data to the specified path. `pod`, No, `string`, pod to which the volumes are attached `volumes`, No, `map[string]string`, Mapping of `pvcName` to `mountPath` under which the volume will be available `encryptionKey`, No, `string`, encryption key to be used during backups + `insecureTLS`, No, `bool`, enables insecure connection for data mover `podOverride`, No, `map[string]interface{}`, specs to override default pod specs with .. note:: @@ -505,6 +508,7 @@ respective PVCs and restores data to the specified path. `pods`, No, `string`, pods to which the volumes are attached `encryptionKey`, No, `string`, encryption key to be used during backups `backupInfo`, Yes, `string`, snapshot info generated as output in BackupDataAll function + `insecureTLS`, No, `bool`, enables insecure connection for data mover `podOverride`, No, `map[string]interface{}`, specs to override default pod specs with .. note:: @@ -575,6 +579,7 @@ Arguments: `volume`, Yes, `string`, name of the source PVC `dataArtifactPrefix`, Yes, `string`, path on the object store to store the data in `encryptionKey`, No, `string`, encryption key to be used during backups + `insecureTLS`, No, `bool`, enables insecure connection for data mover `podOverride`, No, `map[string]interface{}`, specs to override default pod specs with Outputs: @@ -620,6 +625,7 @@ This function deletes the snapshot data backed up by the :ref:`backupdata` funct `backupID`, No, `string`, (required if backupTag not provided) unique snapshot id generated during backup `backupTag`, No, `string`, (required if backupID not provided) unique tag added during the backup `encryptionKey`, No, `string`, encryption key to be used during backups + `insecureTLS`, No, `bool`, enables insecure connection for data mover `podOverride`, No, `map[string]interface{}`, specs to override default pod specs with Example: @@ -657,6 +663,7 @@ BackupDataAll function. `backupInfo`, Yes, `string`, snapshot info generated as output in BackupDataAll function `encryptionKey`, No, `string`, encryption key to be used during backups `reclaimSpace`, No, `bool`, provides a way to specify if space should be reclaimed + `insecureTLS`, No, `bool`, enables insecure connection for data mover `podOverride`, No, `map[string]interface{}`, specs to override default pod specs with Example: diff --git a/pkg/function/backup_data.go b/pkg/function/backup_data.go index 8dc2396cd4..5cd791328a 100644 --- a/pkg/function/backup_data.go +++ b/pkg/function/backup_data.go @@ -60,6 +60,8 @@ const ( BackupDataOutputBackupSize = "size" // BackupDataOutputBackupPhysicalSize is the key used for returning physical size taken by the snapshot BackupDataOutputBackupPhysicalSize = "phySize" + // InsecureTLS is the key name which provides an option to a user to disable tls + InsecureTLS = "insecureTLS" ) func init() { @@ -83,6 +85,7 @@ func (b *backupDataFunc) Exec(ctx context.Context, tp param.TemplateParams, args var namespace, pod, container, includePath, backupArtifactPrefix, encryptionKey string var err error + var insecureTLS bool if err = Arg(args, BackupDataNamespaceArg, &namespace); err != nil { return nil, err } @@ -101,6 +104,9 @@ func (b *backupDataFunc) Exec(ctx context.Context, tp param.TemplateParams, args if err = OptArg(args, BackupDataEncryptionKeyArg, &encryptionKey, restic.GeneratePassword()); err != nil { return nil, err } + if err = OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return nil, err + } if err = ValidateProfile(tp.Profile); err != nil { return nil, errors.Wrapf(err, "Failed to validate Profile") @@ -114,7 +120,7 @@ func (b *backupDataFunc) Exec(ctx context.Context, tp param.TemplateParams, args } ctx = field.Context(ctx, consts.PodNameKey, pod) ctx = field.Context(ctx, consts.ContainerNameKey, container) - backupOutputs, err := backupData(ctx, cli, namespace, pod, container, backupArtifactPrefix, includePath, encryptionKey, tp) + backupOutputs, err := backupData(ctx, cli, namespace, pod, container, backupArtifactPrefix, includePath, encryptionKey, insecureTLS, tp) if err != nil { return nil, errors.Wrapf(err, "Failed to backup data") } @@ -147,6 +153,7 @@ func (*backupDataFunc) Arguments() []string { BackupDataIncludePathArg, BackupDataBackupArtifactPrefixArg, BackupDataEncryptionKeyArg, + InsecureTLS, } } @@ -158,19 +165,19 @@ type backupDataParsedOutput struct { phySize string } -func backupData(ctx context.Context, cli kubernetes.Interface, namespace, pod, container, backupArtifactPrefix, includePath, encryptionKey string, tp param.TemplateParams) (backupDataParsedOutput, error) { +func backupData(ctx context.Context, cli kubernetes.Interface, namespace, pod, container, backupArtifactPrefix, includePath, encryptionKey string, insecureTLS bool, tp param.TemplateParams) (backupDataParsedOutput, error) { pw, err := GetPodWriter(cli, ctx, namespace, pod, container, tp.Profile) if err != nil { return backupDataParsedOutput{}, err } defer CleanUpCredsFile(ctx, pw, namespace, pod, container) - if err = restic.GetOrCreateRepository(cli, namespace, pod, container, backupArtifactPrefix, encryptionKey, tp.Profile); err != nil { + if err = restic.GetOrCreateRepository(cli, namespace, pod, container, backupArtifactPrefix, encryptionKey, insecureTLS, tp.Profile); err != nil { return backupDataParsedOutput{}, err } // Create backup and dump it on the object store backupTag := rand.String(10) - cmd, err := restic.BackupCommandByTag(tp.Profile, backupArtifactPrefix, backupTag, includePath, encryptionKey) + cmd, err := restic.BackupCommandByTag(tp.Profile, backupArtifactPrefix, backupTag, includePath, encryptionKey, insecureTLS) if err != nil { return backupDataParsedOutput{}, err } diff --git a/pkg/function/backup_data_all.go b/pkg/function/backup_data_all.go index 00b56c91dd..a52328ea47 100644 --- a/pkg/function/backup_data_all.go +++ b/pkg/function/backup_data_all.go @@ -81,6 +81,7 @@ func (b *backupDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, a var namespace, pods, container, includePath, backupArtifactPrefix, encryptionKey string var err error + var insecureTLS bool if err = Arg(args, BackupDataAllNamespaceArg, &namespace); err != nil { return nil, err } @@ -99,6 +100,9 @@ func (b *backupDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, a if err = OptArg(args, BackupDataAllEncryptionKeyArg, &encryptionKey, restic.GeneratePassword()); err != nil { return nil, err } + if err = OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return nil, err + } if err = ValidateProfile(tp.Profile); err != nil { return nil, errors.Wrapf(err, "Failed to validate Profile") @@ -124,7 +128,7 @@ func (b *backupDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, a ps = strings.Fields(pods) } ctx = field.Context(ctx, consts.ContainerNameKey, container) - return backupDataAll(ctx, cli, namespace, ps, container, backupArtifactPrefix, includePath, encryptionKey, tp) + return backupDataAll(ctx, cli, namespace, ps, container, backupArtifactPrefix, includePath, encryptionKey, insecureTLS, tp) } func (*backupDataAllFunc) RequiredArgs() []string { @@ -144,10 +148,12 @@ func (*backupDataAllFunc) Arguments() []string { BackupDataAllBackupArtifactPrefixArg, BackupDataAllPodsArg, BackupDataAllEncryptionKeyArg, + InsecureTLS, } } -func backupDataAll(ctx context.Context, cli kubernetes.Interface, namespace string, ps []string, container string, backupArtifactPrefix, includePath, encryptionKey string, tp param.TemplateParams) (map[string]interface{}, error) { +func backupDataAll(ctx context.Context, cli kubernetes.Interface, namespace string, ps []string, container string, backupArtifactPrefix, includePath, encryptionKey string, + insecureTLS bool, tp param.TemplateParams) (map[string]interface{}, error) { errChan := make(chan error, len(ps)) outChan := make(chan BackupInfo, len(ps)) Output := make(map[string]BackupInfo) @@ -155,7 +161,7 @@ func backupDataAll(ctx context.Context, cli kubernetes.Interface, namespace stri for _, pod := range ps { go func(pod string, container string) { ctx = field.Context(ctx, consts.PodNameKey, pod) - backupOutputs, err := backupData(ctx, cli, namespace, pod, container, fmt.Sprintf("%s/%s", backupArtifactPrefix, pod), includePath, encryptionKey, tp) + backupOutputs, err := backupData(ctx, cli, namespace, pod, container, fmt.Sprintf("%s/%s", backupArtifactPrefix, pod), includePath, encryptionKey, insecureTLS, tp) errChan <- errors.Wrapf(err, "Failed to backup data for pod %s", pod) outChan <- BackupInfo{PodName: pod, BackupID: backupOutputs.backupID, BackupTag: backupOutputs.backupTag} }(pod, container) diff --git a/pkg/function/checkRepository.go b/pkg/function/checkRepository.go index a240f20e15..029b4573e6 100644 --- a/pkg/function/checkRepository.go +++ b/pkg/function/checkRepository.go @@ -46,7 +46,7 @@ func (*CheckRepositoryFunc) Name() string { return CheckRepositoryFuncName } -func CheckRepository(ctx context.Context, cli kubernetes.Interface, tp param.TemplateParams, encryptionKey, targetPaths, jobPrefix string, podOverride crv1alpha1.JSONMap) (map[string]interface{}, error) { +func CheckRepository(ctx context.Context, cli kubernetes.Interface, tp param.TemplateParams, encryptionKey, targetPaths, jobPrefix string, insecureTLS bool, podOverride crv1alpha1.JSONMap) (map[string]interface{}, error) { namespace, err := kube.GetControllerNamespace() if err != nil { return nil, errors.Wrapf(err, "Failed to get controller namespace") @@ -59,7 +59,7 @@ func CheckRepository(ctx context.Context, cli kubernetes.Interface, tp param.Tem PodOverride: podOverride, } pr := kube.NewPodRunner(cli, options) - podFunc := CheckRepositoryPodFunc(cli, tp, encryptionKey, targetPaths) + podFunc := CheckRepositoryPodFunc(cli, tp, encryptionKey, targetPaths, insecureTLS) return pr.Run(ctx, podFunc) } @@ -68,6 +68,7 @@ func CheckRepositoryPodFunc( tp param.TemplateParams, encryptionKey, targetPath string, + insecureTLS bool, ) func(ctx context.Context, pc kube.PodController) (map[string]interface{}, error) { return func(ctx context.Context, pc kube.PodController) (map[string]interface{}, error) { pod := pc.Pod() @@ -89,6 +90,7 @@ func CheckRepositoryPodFunc( tp.Profile, targetPath, encryptionKey, + insecureTLS, cli, pod.Namespace, pod.Name, @@ -126,12 +128,17 @@ func (c *CheckRepositoryFunc) Exec(ctx context.Context, tp param.TemplateParams, defer func() { c.progressPercent = progress.CompletedPercent }() var checkRepositoryArtifactPrefix, encryptionKey string + var insecureTLS bool if err := Arg(args, CheckRepositoryArtifactPrefixArg, &checkRepositoryArtifactPrefix); err != nil { return nil, err } if err := OptArg(args, CheckRepositoryEncryptionKeyArg, &encryptionKey, restic.GeneratePassword()); err != nil { return nil, err } + if err := OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return nil, err + } + podOverride, err := GetPodSpecOverride(tp, args, CheckRepositoryPodOverrideArg) if err != nil { return nil, err @@ -147,7 +154,7 @@ func (c *CheckRepositoryFunc) Exec(ctx context.Context, tp param.TemplateParams, if err != nil { return nil, errors.Wrapf(err, "Failed to create Kubernetes client") } - return CheckRepository(ctx, cli, tp, encryptionKey, checkRepositoryArtifactPrefix, CheckRepositoryJobPrefix, podOverride) + return CheckRepository(ctx, cli, tp, encryptionKey, checkRepositoryArtifactPrefix, CheckRepositoryJobPrefix, insecureTLS, podOverride) } func (*CheckRepositoryFunc) RequiredArgs() []string { @@ -158,6 +165,7 @@ func (*CheckRepositoryFunc) Arguments() []string { return []string{ CheckRepositoryArtifactPrefixArg, CheckRepositoryEncryptionKeyArg, + InsecureTLS, } } func (c *CheckRepositoryFunc) ExecutionProgress() (crv1alpha1.PhaseProgress, error) { diff --git a/pkg/function/copy_volume_data.go b/pkg/function/copy_volume_data.go index ee263a451c..9e7dd631b3 100644 --- a/pkg/function/copy_volume_data.go +++ b/pkg/function/copy_volume_data.go @@ -77,6 +77,7 @@ func copyVolumeData( pvcName, targetPath, encryptionKey string, + insecureTLS bool, podOverride map[string]interface{}, ) (map[string]interface{}, error) { // Validate PVC exists @@ -99,7 +100,7 @@ func copyVolumeData( PodOverride: podOverride, } pr := kube.NewPodRunner(cli, options) - podFunc := copyVolumeDataPodFunc(cli, tp, mountPoint, targetPath, encryptionKey) + podFunc := copyVolumeDataPodFunc(cli, tp, mountPoint, targetPath, encryptionKey, insecureTLS) return pr.Run(ctx, podFunc) } @@ -109,6 +110,7 @@ func copyVolumeDataPodFunc( mountPoint, targetPath, encryptionKey string, + insecureTLS bool, ) func(ctx context.Context, pc kube.PodController) (map[string]interface{}, error) { return func(ctx context.Context, pc kube.PodController) (map[string]interface{}, error) { // Wait for pod to reach running state @@ -133,13 +135,14 @@ func copyVolumeDataPodFunc( pod.Spec.Containers[0].Name, targetPath, encryptionKey, + insecureTLS, tp.Profile, ); err != nil { return nil, err } // Copy data to object store backupTag := rand.String(10) - cmd, err := restic.BackupCommandByTag(tp.Profile, targetPath, backupTag, mountPoint, encryptionKey) + cmd, err := restic.BackupCommandByTag(tp.Profile, targetPath, backupTag, mountPoint, encryptionKey, insecureTLS) if err != nil { return nil, err } @@ -184,6 +187,7 @@ func (c *copyVolumeDataFunc) Exec(ctx context.Context, tp param.TemplateParams, var namespace, vol, targetPath, encryptionKey string var err error + var insecureTLS bool if err = Arg(args, CopyVolumeDataNamespaceArg, &namespace); err != nil { return nil, err } @@ -196,6 +200,9 @@ func (c *copyVolumeDataFunc) Exec(ctx context.Context, tp param.TemplateParams, if err = OptArg(args, CopyVolumeDataEncryptionKeyArg, &encryptionKey, restic.GeneratePassword()); err != nil { return nil, err } + if err = OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return nil, err + } podOverride, err := GetPodSpecOverride(tp, args, CopyVolumeDataPodOverrideArg) if err != nil { return nil, err @@ -211,7 +218,7 @@ func (c *copyVolumeDataFunc) Exec(ctx context.Context, tp param.TemplateParams, if err != nil { return nil, errors.Wrapf(err, "Failed to create Kubernetes client") } - return copyVolumeData(ctx, cli, tp, namespace, vol, targetPath, encryptionKey, podOverride) + return copyVolumeData(ctx, cli, tp, namespace, vol, targetPath, encryptionKey, insecureTLS, podOverride) } func (*copyVolumeDataFunc) RequiredArgs() []string { @@ -228,6 +235,7 @@ func (*copyVolumeDataFunc) Arguments() []string { CopyVolumeDataVolumeArg, CopyVolumeDataArtifactPrefixArg, CopyVolumeDataEncryptionKeyArg, + InsecureTLS, } } diff --git a/pkg/function/delete_data.go b/pkg/function/delete_data.go index 6516673f31..61df99cd32 100644 --- a/pkg/function/delete_data.go +++ b/pkg/function/delete_data.go @@ -79,6 +79,7 @@ func deleteData( reclaimSpace bool, namespace, encryptionKey string, + insecureTLS bool, targetPaths, deleteTags, deleteIdentifiers []string, @@ -97,7 +98,7 @@ func deleteData( PodOverride: podOverride, } pr := kube.NewPodRunner(cli, options) - podFunc := deleteDataPodFunc(tp, reclaimSpace, encryptionKey, targetPaths, deleteTags, deleteIdentifiers) + podFunc := deleteDataPodFunc(tp, reclaimSpace, encryptionKey, insecureTLS, targetPaths, deleteTags, deleteIdentifiers) return pr.Run(ctx, podFunc) } @@ -106,6 +107,7 @@ func deleteDataPodFunc( tp param.TemplateParams, reclaimSpace bool, encryptionKey string, + insecureTLS bool, targetPaths, deleteTags, deleteIdentifiers []string, @@ -133,7 +135,7 @@ func deleteDataPodFunc( } for i, deleteTag := range deleteTags { - cmd, err := restic.SnapshotsCommandByTag(tp.Profile, targetPaths[i], deleteTag, encryptionKey) + cmd, err := restic.SnapshotsCommandByTag(tp.Profile, targetPaths[i], deleteTag, encryptionKey, insecureTLS) if err != nil { return nil, err } @@ -153,7 +155,7 @@ func deleteDataPodFunc( } var spaceFreedTotal int64 for i, deleteIdentifier := range deleteIdentifiers { - cmd, err := restic.ForgetCommandByID(tp.Profile, targetPaths[i], deleteIdentifier, encryptionKey) + cmd, err := restic.ForgetCommandByID(tp.Profile, targetPaths[i], deleteIdentifier, encryptionKey, insecureTLS) if err != nil { return nil, err } @@ -166,7 +168,7 @@ func deleteDataPodFunc( return nil, errors.Wrapf(err, "Failed to forget data") } if reclaimSpace { - spaceFreedStr, err := pruneData(tp, pod, podCommandExecutor, encryptionKey, targetPaths[i]) + spaceFreedStr, err := pruneData(tp, pod, podCommandExecutor, encryptionKey, targetPaths[i], insecureTLS) if err != nil { return nil, errors.Wrapf(err, "Error executing prune command") } @@ -186,8 +188,9 @@ func pruneData( podCommandExecutor kube.PodCommandExecutor, encryptionKey, targetPath string, + insecureTLS bool, ) (string, error) { - cmd, err := restic.PruneCommand(tp.Profile, targetPath, encryptionKey) + cmd, err := restic.PruneCommand(tp.Profile, targetPath, encryptionKey, insecureTLS) if err != nil { return "", err } @@ -209,6 +212,7 @@ func (d *deleteDataFunc) Exec(ctx context.Context, tp param.TemplateParams, args var namespace, deleteArtifactPrefix, deleteIdentifier, deleteTag, encryptionKey string var reclaimSpace bool var err error + var insecureTLS bool if err = Arg(args, DeleteDataNamespaceArg, &namespace); err != nil { return nil, err } @@ -227,6 +231,9 @@ func (d *deleteDataFunc) Exec(ctx context.Context, tp param.TemplateParams, args if err = OptArg(args, DeleteDataReclaimSpace, &reclaimSpace, false); err != nil { return nil, err } + if err = OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return nil, err + } podOverride, err := GetPodSpecOverride(tp, args, DeleteDataPodOverrideArg) if err != nil { return nil, err @@ -242,7 +249,7 @@ func (d *deleteDataFunc) Exec(ctx context.Context, tp param.TemplateParams, args if err != nil { return nil, errors.Wrapf(err, "Failed to create Kubernetes client") } - return deleteData(ctx, cli, tp, reclaimSpace, namespace, encryptionKey, strings.Fields(deleteArtifactPrefix), strings.Fields(deleteTag), strings.Fields(deleteIdentifier), deleteDataJobPrefix, podOverride) + return deleteData(ctx, cli, tp, reclaimSpace, namespace, encryptionKey, insecureTLS, strings.Fields(deleteArtifactPrefix), strings.Fields(deleteTag), strings.Fields(deleteIdentifier), deleteDataJobPrefix, podOverride) } func (*deleteDataFunc) RequiredArgs() []string { @@ -260,6 +267,7 @@ func (*deleteDataFunc) Arguments() []string { DeleteDataBackupTagArg, DeleteDataEncryptionKeyArg, DeleteDataReclaimSpace, + InsecureTLS, } } diff --git a/pkg/function/delete_data_all.go b/pkg/function/delete_data_all.go index 1e631e5bd1..51366e73cb 100644 --- a/pkg/function/delete_data_all.go +++ b/pkg/function/delete_data_all.go @@ -71,6 +71,7 @@ func (d *deleteDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, a var namespace, deleteArtifactPrefix, backupInfo, encryptionKey string var reclaimSpace bool var err error + var insecureTLS bool if err = Arg(args, DeleteDataAllNamespaceArg, &namespace); err != nil { return nil, err } @@ -86,6 +87,9 @@ func (d *deleteDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, a if err = OptArg(args, DeleteDataAllReclaimSpace, &reclaimSpace, false); err != nil { return nil, err } + if err = OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return nil, err + } podOverride, err := GetPodSpecOverride(tp, args, DeleteDataAllPodOverrideArg) if err != nil { return nil, err @@ -110,7 +114,7 @@ func (d *deleteDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, a deleteIdentifiers = append(deleteIdentifiers, info.BackupID) } - return deleteData(ctx, cli, tp, reclaimSpace, namespace, encryptionKey, targetPaths, nil, deleteIdentifiers, deleteDataAllJobPrefix, podOverride) + return deleteData(ctx, cli, tp, reclaimSpace, namespace, encryptionKey, insecureTLS, targetPaths, nil, deleteIdentifiers, deleteDataAllJobPrefix, podOverride) } func (*deleteDataAllFunc) RequiredArgs() []string { @@ -128,6 +132,7 @@ func (*deleteDataAllFunc) Arguments() []string { DeleteDataAllBackupInfo, DeleteDataAllEncryptionKeyArg, DeleteDataAllReclaimSpace, + InsecureTLS, } } diff --git a/pkg/function/restore_data.go b/pkg/function/restore_data.go index 0c8a8e9318..564776ab09 100644 --- a/pkg/function/restore_data.go +++ b/pkg/function/restore_data.go @@ -72,48 +72,52 @@ func (*restoreDataFunc) Name() string { return RestoreDataFuncName } -func validateAndGetOptArgs(args map[string]interface{}, tp param.TemplateParams) (string, string, string, map[string]string, string, string, crv1alpha1.JSONMap, error) { +func validateAndGetOptArgs(args map[string]interface{}, tp param.TemplateParams) (string, string, string, map[string]string, string, string, bool, crv1alpha1.JSONMap, error) { var restorePath, encryptionKey, pod, tag, id string var vols map[string]string var podOverride crv1alpha1.JSONMap var err error + var insecureTLS bool if err = OptArg(args, RestoreDataRestorePathArg, &restorePath, "/"); err != nil { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, err + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } if err = OptArg(args, RestoreDataEncryptionKeyArg, &encryptionKey, restic.GeneratePassword()); err != nil { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, err + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } if err = OptArg(args, RestoreDataPodArg, &pod, ""); err != nil { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, err + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } if err = OptArg(args, RestoreDataVolsArg, &vols, nil); err != nil { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, err + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } if (pod != "") == (len(vols) > 0) { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, errors.Errorf("Require one argument: %s or %s", RestoreDataPodArg, RestoreDataVolsArg) } if err = OptArg(args, RestoreDataBackupTagArg, &tag, nil); err != nil { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, err + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } if err = OptArg(args, RestoreDataBackupIdentifierArg, &id, nil); err != nil { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, err + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err + } + if err = OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } if (tag != "") == (id != "") { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, errors.Errorf("Require one argument: %s or %s", RestoreDataBackupTagArg, RestoreDataBackupIdentifierArg) } podOverride, err = GetPodSpecOverride(tp, args, RestoreDataPodOverrideArg) if err != nil { - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, err + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } - return restorePath, encryptionKey, pod, vols, tag, id, podOverride, nil + return restorePath, encryptionKey, pod, vols, tag, id, insecureTLS, podOverride, err } func restoreData(ctx context.Context, cli kubernetes.Interface, tp param.TemplateParams, namespace, encryptionKey, backupArtifactPrefix, restorePath, backupTag, backupID, jobPrefix, image string, - vols map[string]string, podOverride crv1alpha1.JSONMap) (map[string]interface{}, error) { + insecureTLS bool, vols map[string]string, podOverride crv1alpha1.JSONMap) (map[string]interface{}, error) { // Validate volumes validatedVols := make(map[string]kube.VolumeMountOptions) for pvcName, mountPoint := range vols { @@ -137,7 +141,7 @@ func restoreData(ctx context.Context, cli kubernetes.Interface, tp param.Templat PodOverride: podOverride, } pr := kube.NewPodRunner(cli, options) - podFunc := restoreDataPodFunc(tp, encryptionKey, backupArtifactPrefix, restorePath, backupTag, backupID) + podFunc := restoreDataPodFunc(tp, encryptionKey, backupArtifactPrefix, restorePath, backupTag, backupID, insecureTLS) return pr.Run(ctx, podFunc) } @@ -148,6 +152,7 @@ func restoreDataPodFunc( restorePath, backupTag, backupID string, + insecureTLS bool, ) func(ctx context.Context, pc kube.PodController) (map[string]interface{}, error) { return func(ctx context.Context, pc kube.PodController) (map[string]interface{}, error) { pod := pc.Pod() @@ -168,9 +173,9 @@ func restoreDataPodFunc( var cmd []string // Generate restore command based on the identifier passed if backupTag != "" { - cmd, err = restic.RestoreCommandByTag(tp.Profile, backupArtifactPrefix, backupTag, restorePath, encryptionKey) + cmd, err = restic.RestoreCommandByTag(tp.Profile, backupArtifactPrefix, backupTag, restorePath, encryptionKey, insecureTLS) } else if backupID != "" { - cmd, err = restic.RestoreCommandByID(tp.Profile, backupArtifactPrefix, backupID, restorePath, encryptionKey) + cmd, err = restic.RestoreCommandByID(tp.Profile, backupArtifactPrefix, backupID, restorePath, encryptionKey, insecureTLS) } if err != nil { return nil, err @@ -211,7 +216,7 @@ func (r *restoreDataFunc) Exec(ctx context.Context, tp param.TemplateParams, arg } // Validate and get optional arguments - restorePath, encryptionKey, pod, vols, backupTag, backupID, podOverride, err := validateAndGetOptArgs(args, tp) + restorePath, encryptionKey, pod, vols, backupTag, backupID, insecureTLS, podOverride, err := validateAndGetOptArgs(args, tp) if err != nil { return nil, err } @@ -245,7 +250,7 @@ func (r *restoreDataFunc) Exec(ctx context.Context, tp param.TemplateParams, arg if err != nil { return nil, errors.Wrapf(err, "Failed to create Kubernetes client") } - return restoreData(ctx, cli, tp, namespace, encryptionKey, backupArtifactPrefix, restorePath, backupTag, backupID, restoreDataJobPrefix, image, vols, podOverride) + return restoreData(ctx, cli, tp, namespace, encryptionKey, backupArtifactPrefix, restorePath, backupTag, backupID, restoreDataJobPrefix, image, insecureTLS, vols, podOverride) } func (*restoreDataFunc) RequiredArgs() []string { @@ -268,6 +273,7 @@ func (*restoreDataFunc) Arguments() []string { RestoreDataBackupTagArg, RestoreDataBackupIdentifierArg, RestoreDataPodOverrideArg, + InsecureTLS, } } diff --git a/pkg/function/restore_data_all.go b/pkg/function/restore_data_all.go index 31a2c626f1..2fe0d0ed52 100644 --- a/pkg/function/restore_data_all.go +++ b/pkg/function/restore_data_all.go @@ -68,24 +68,28 @@ func (*restoreDataAllFunc) Name() string { return RestoreDataAllFuncName } -func validateAndGetRestoreAllOptArgs(args map[string]interface{}, tp param.TemplateParams) (string, string, []string, crv1alpha1.JSONMap, error) { +func validateAndGetRestoreAllOptArgs(args map[string]interface{}, tp param.TemplateParams) (string, string, []string, bool, crv1alpha1.JSONMap, error) { var restorePath, encryptionKey, pods string var ps []string var podOverride crv1alpha1.JSONMap var err error + var insecureTLS bool if err = OptArg(args, RestoreDataAllRestorePathArg, &restorePath, "/"); err != nil { - return restorePath, encryptionKey, ps, podOverride, err + return restorePath, encryptionKey, ps, insecureTLS, podOverride, err } if err = OptArg(args, RestoreDataAllEncryptionKeyArg, &encryptionKey, restic.GeneratePassword()); err != nil { - return restorePath, encryptionKey, ps, podOverride, err + return restorePath, encryptionKey, ps, insecureTLS, podOverride, err } if err = OptArg(args, RestoreDataAllPodsArg, &pods, ""); err != nil { - return restorePath, encryptionKey, ps, podOverride, err + return restorePath, encryptionKey, ps, insecureTLS, podOverride, err + } + if err = OptArg(args, InsecureTLS, &insecureTLS, false); err != nil { + return restorePath, encryptionKey, ps, insecureTLS, podOverride, err } podOverride, err = GetPodSpecOverride(tp, args, RestoreDataAllPodOverrideArg) if err != nil { - return restorePath, encryptionKey, ps, podOverride, err + return restorePath, encryptionKey, ps, insecureTLS, podOverride, err } if pods != "" { @@ -97,11 +101,11 @@ func validateAndGetRestoreAllOptArgs(args map[string]interface{}, tp param.Templ case tp.StatefulSet != nil: ps = tp.StatefulSet.Pods default: - return restorePath, encryptionKey, ps, podOverride, errors.New("Unsupported workload type") + return restorePath, encryptionKey, ps, insecureTLS, podOverride, errors.New("Unsupported workload type") } } - return restorePath, encryptionKey, ps, podOverride, nil + return restorePath, encryptionKey, ps, insecureTLS, podOverride, err } func (r *restoreDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, args map[string]interface{}) (map[string]interface{}, error) { @@ -111,6 +115,7 @@ func (r *restoreDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, var namespace, image, backupArtifactPrefix, backupInfo string var err error + if err = Arg(args, RestoreDataAllNamespaceArg, &namespace); err != nil { return nil, err } @@ -125,7 +130,7 @@ func (r *restoreDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, } // Validate and get optional arguments - restorePath, encryptionKey, pods, podOverride, err := validateAndGetRestoreAllOptArgs(args, tp) + restorePath, encryptionKey, pods, insecureTLS, podOverride, err := validateAndGetRestoreAllOptArgs(args, tp) if err != nil { return nil, err } @@ -155,7 +160,7 @@ func (r *restoreDataAllFunc) Exec(ctx context.Context, tp param.TemplateParams, outputChan <- out return } - out, err = restoreData(ctx, cli, tp, namespace, encryptionKey, fmt.Sprintf("%s/%s", backupArtifactPrefix, pod), restorePath, "", input[pod].BackupID, restoreDataAllJobPrefix, image, vols, podOverride) + out, err = restoreData(ctx, cli, tp, namespace, encryptionKey, fmt.Sprintf("%s/%s", backupArtifactPrefix, pod), restorePath, "", input[pod].BackupID, restoreDataAllJobPrefix, image, insecureTLS, vols, podOverride) errChan <- errors.Wrapf(err, "Failed to restore data for pod %s", pod) outputChan <- out }(pod) @@ -197,6 +202,7 @@ func (*restoreDataAllFunc) Arguments() []string { RestoreDataAllEncryptionKeyArg, RestoreDataAllPodsArg, RestoreDataAllPodOverrideArg, + InsecureTLS, } } diff --git a/pkg/function/restore_data_test.go b/pkg/function/restore_data_test.go index b9c2ba712e..d438db10d7 100644 --- a/pkg/function/restore_data_test.go +++ b/pkg/function/restore_data_test.go @@ -110,7 +110,7 @@ func (s *RestoreDataTestSuite) TestValidateAndGetOptArgs(c *C) { }, } for _, tc := range testCases { - _, _, _, _, _, _, _, err := validateAndGetOptArgs(tc.args, tc.tp) + _, _, _, _, _, _, _, _, err := validateAndGetOptArgs(tc.args, tc.tp) c.Check(err, tc.errChecker, Commentf("Case %s failed", tc.name)) } } diff --git a/pkg/restic/restic.go b/pkg/restic/restic.go index 774dbc2e5a..b1a84ff583 100644 --- a/pkg/restic/restic.go +++ b/pkg/restic/restic.go @@ -47,34 +47,43 @@ func shCommand(command string) []string { } // BackupCommandByTag returns restic backup command with tag -func BackupCommandByTag(profile *param.Profile, repository, backupTag, includePath, encryptionKey string) ([]string, error) { +func BackupCommandByTag(profile *param.Profile, repository, backupTag, includePath, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "backup", "--tag", backupTag, includePath) + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } // RestoreCommandByID returns restic restore command with snapshotID as the identifier -func RestoreCommandByID(profile *param.Profile, repository, id, restorePath, encryptionKey string) ([]string, error) { +func RestoreCommandByID(profile *param.Profile, repository, id, restorePath, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "restore", id, "--target", restorePath) + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } // RestoreCommandByTag returns restic restore command with tag as the identifier -func RestoreCommandByTag(profile *param.Profile, repository, tag, restorePath, encryptionKey string) ([]string, error) { +func RestoreCommandByTag(profile *param.Profile, repository, tag, restorePath, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "restore", "--tag", tag, "latest", "--target", restorePath) + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } @@ -91,56 +100,71 @@ func SnapshotsCommand(profile *param.Profile, repository, encryptionKey string) } // LatestSnapshotsCommand returns restic snapshots command for last snapshots -func LatestSnapshotsCommand(profile *param.Profile, repository, encryptionKey string) ([]string, error) { +func LatestSnapshotsCommand(profile *param.Profile, repository, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "snapshots", "--last", "--json") + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } // SnapshotsCommandByTag returns restic snapshots command -func SnapshotsCommandByTag(profile *param.Profile, repository, tag, encryptionKey string) ([]string, error) { +func SnapshotsCommandByTag(profile *param.Profile, repository, tag, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "snapshots", "--tag", tag, "--json") + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } // InitCommand returns restic init command -func InitCommand(profile *param.Profile, repository, encryptionKey string) ([]string, error) { +func InitCommand(profile *param.Profile, repository, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "init") + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } // ForgetCommandByID returns restic forget command -func ForgetCommandByID(profile *param.Profile, repository, id, encryptionKey string) ([]string, error) { +func ForgetCommandByID(profile *param.Profile, repository, id, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "forget", id) + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } // PruneCommand returns restic prune command -func PruneCommand(profile *param.Profile, repository, encryptionKey string) ([]string, error) { +func PruneCommand(profile *param.Profile, repository, encryptionKey string, insecureTLS bool) ([]string, error) { cmd, err := resticArgs(profile, repository, encryptionKey) if err != nil { return nil, err } cmd = append(cmd, "prune") + if insecureTLS { + cmd = append(cmd, "--insecure-tls") + } command := strings.Join(cmd, " ") return shCommand(command), nil } @@ -259,13 +283,13 @@ func resticAzureArgs(profile *param.Profile, repository string) ([]string, error } // GetOrCreateRepository will check if the repository already exists and initialize one if not -func GetOrCreateRepository(cli kubernetes.Interface, namespace, pod, container, artifactPrefix, encryptionKey string, profile *param.Profile) error { - _, _, err := getLatestSnapshots(profile, artifactPrefix, encryptionKey, cli, namespace, pod, container) +func GetOrCreateRepository(cli kubernetes.Interface, namespace, pod, container, artifactPrefix, encryptionKey string, insecureTLS bool, profile *param.Profile) error { + _, _, err := getLatestSnapshots(profile, artifactPrefix, encryptionKey, insecureTLS, cli, namespace, pod, container) if err == nil { return nil } // Create a repository - cmd, err := InitCommand(profile, artifactPrefix, encryptionKey) + cmd, err := InitCommand(profile, artifactPrefix, encryptionKey, insecureTLS) if err != nil { return errors.Wrap(err, "Failed to create init command") } @@ -276,8 +300,8 @@ func GetOrCreateRepository(cli kubernetes.Interface, namespace, pod, container, } // CheckIfRepoIsReachable checks if repo can be reached by trying to list snapshots -func CheckIfRepoIsReachable(profile *param.Profile, artifactPrefix string, encryptionKey string, cli kubernetes.Interface, namespace string, pod string, container string) error { - _, stderr, err := getLatestSnapshots(profile, artifactPrefix, encryptionKey, cli, namespace, pod, container) +func CheckIfRepoIsReachable(profile *param.Profile, artifactPrefix string, encryptionKey string, insecureTLS bool, cli kubernetes.Interface, namespace string, pod string, container string) error { + _, stderr, err := getLatestSnapshots(profile, artifactPrefix, encryptionKey, insecureTLS, cli, namespace, pod, container) if IsPasswordIncorrect(stderr) { // If password didn't work return errors.New(PasswordIncorrect) } @@ -291,9 +315,9 @@ func CheckIfRepoIsReachable(profile *param.Profile, artifactPrefix string, encry } //nolint:unparam -func getLatestSnapshots(profile *param.Profile, artifactPrefix string, encryptionKey string, cli kubernetes.Interface, namespace string, pod string, container string) (string, string, error) { +func getLatestSnapshots(profile *param.Profile, artifactPrefix string, encryptionKey string, insecureTLS bool, cli kubernetes.Interface, namespace string, pod string, container string) (string, string, error) { // Use the latest snapshots command to check if the repository exists - cmd, err := LatestSnapshotsCommand(profile, artifactPrefix, encryptionKey) + cmd, err := LatestSnapshotsCommand(profile, artifactPrefix, encryptionKey, insecureTLS) if err != nil { return "", "", errors.Wrap(err, "Failed to create snapshot command") } From 15b85b8d63329e392256efc948ccc67ebb938021 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:32:56 +0000 Subject: [PATCH 10/17] deps(go): bump the common-golang group with 2 updates (#2636) Bumps the common-golang group with 2 updates: [github.com/aws/aws-sdk-go](https://github.com/aws/aws-sdk-go) and [google.golang.org/api](https://github.com/googleapis/google-api-go-client). Updates `github.com/aws/aws-sdk-go` from 1.49.22 to 1.50.6 - [Release notes](https://github.com/aws/aws-sdk-go/releases) - [Commits](https://github.com/aws/aws-sdk-go/compare/v1.49.22...v1.50.6) Updates `google.golang.org/api` from 0.157.0 to 0.160.0 - [Release notes](https://github.com/googleapis/google-api-go-client/releases) - [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md) - [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.157.0...v0.160.0) --- updated-dependencies: - dependency-name: github.com/aws/aws-sdk-go dependency-type: direct:production update-type: version-update:semver-minor dependency-group: common-golang - dependency-name: google.golang.org/api dependency-type: direct:production update-type: version-update:semver-minor dependency-group: common-golang ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 9d20bccb82..910f3509f8 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.3.0 github.com/Masterminds/semver v1.5.0 github.com/Masterminds/sprig v2.22.0+incompatible - github.com/aws/aws-sdk-go v1.49.22 + github.com/aws/aws-sdk-go v1.50.6 github.com/dustin/go-humanize v1.0.1 github.com/go-logr/logr v1.4.1 github.com/go-openapi/strfmt v0.22.0 @@ -47,7 +47,7 @@ require ( go.uber.org/zap v1.26.0 golang.org/x/oauth2 v0.16.0 gonum.org/v1/gonum v0.14.0 - google.golang.org/api v0.157.0 + google.golang.org/api v0.160.0 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 @@ -226,8 +226,8 @@ require ( github.com/golang-jwt/jwt/v5 v5.2.0 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect github.com/hashicorp/cronexpr v1.1.2 // indirect - go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.22.0 // indirect go.opentelemetry.io/otel/metric v1.22.0 // indirect diff --git a/go.sum b/go.sum index fa2e3c8aef..412b659b81 100644 --- a/go.sum +++ b/go.sum @@ -109,8 +109,8 @@ github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPd github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -github.com/aws/aws-sdk-go v1.49.22 h1:r01+cQJ3cORQI1PJxG8af0jzrZpUOL9L+/3kU2x1geU= -github.com/aws/aws-sdk-go v1.49.22/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= +github.com/aws/aws-sdk-go v1.50.6 h1:FaXvNwHG3Ri1paUEW16Ahk9zLVqSAdqa1M3phjZR35Q= +github.com/aws/aws-sdk-go v1.50.6/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -561,10 +561,10 @@ go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 h1:SpGay3w+nEwMpfVnbqOLH5gY52/foP8RE8UzTZ1pdSE= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.22.0 h1:9M3+rhx7kZCIQQhQRYaZCdNu1V73tm4TvXs2ntl98C4= @@ -758,8 +758,8 @@ google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.157.0 h1:ORAeqmbrrozeyw5NjnMxh7peHO0UzV4wWYSwZeCUb20= -google.golang.org/api v0.157.0/go.mod h1:+z4v4ufbZ1WEpld6yMGHyggs+PmAHiaLNj5ytP3N01g= +google.golang.org/api v0.160.0 h1:SEspjXHVqE1m5a1fRy8JFB+5jSu+V0GEDKDghF3ttO4= +google.golang.org/api v0.160.0/go.mod h1:0mu0TpK33qnydLvWqbImq2b1eQ5FHRSDCBzAxX9ZHyw= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= From c7c8190be0a0f0898c118d8b97ab291295eba026 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 16:47:08 +0000 Subject: [PATCH 11/17] deps(go): bump github.com/google/uuid from 1.5.0 to 1.6.0 (#2635) Bumps [github.com/google/uuid](https://github.com/google/uuid) from 1.5.0 to 1.6.0. - [Release notes](https://github.com/google/uuid/releases) - [Changelog](https://github.com/google/uuid/blob/master/CHANGELOG.md) - [Commits](https://github.com/google/uuid/compare/v1.5.0...v1.6.0) --- updated-dependencies: - dependency-name: github.com/google/uuid dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 910f3509f8..bb49e9f3df 100644 --- a/go.mod +++ b/go.mod @@ -25,7 +25,7 @@ require ( github.com/go-openapi/strfmt v0.22.0 github.com/gofrs/uuid v4.4.0+incompatible github.com/golang/mock v1.6.0 - github.com/google/uuid v1.5.0 + github.com/google/uuid v1.6.0 github.com/graymeta/stow v0.0.0-00010101000000-000000000000 github.com/hashicorp/go-version v1.6.0 github.com/jpillora/backoff v1.0.0 diff --git a/go.sum b/go.sum index 412b659b81..9793c1f653 100644 --- a/go.sum +++ b/go.sum @@ -310,8 +310,8 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaU github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= From 7a162cbeeb3277f21ee28261a117a6159f71f0c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 12:27:19 -0500 Subject: [PATCH 12/17] Bump the github-actions group with 3 updates (#2631) Bumps the github-actions group with 3 updates: [actions/dependency-review-action](https://github.com/actions/dependency-review-action), [github/codeql-action](https://github.com/github/codeql-action) and [actions/upload-artifact](https://github.com/actions/upload-artifact). Updates `actions/dependency-review-action` from 3 to 4 - [Release notes](https://github.com/actions/dependency-review-action/releases) - [Commits](https://github.com/actions/dependency-review-action/compare/v3...v4) Updates `github/codeql-action` from 3.23.0 to 3.23.2 - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/github/codeql-action/compare/e5f05b81d5b6ff8cfa111c80c22c5fd02a384118...b7bf0a3ed3ecfa44160715d7c442788f65f0f923) Updates `actions/upload-artifact` from 4.0.0 to 4.3.0 - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/c7d193f32edcb7bfad88892161225aeda64e9392...26f96dfa697d77e81fd5907df203aa23a56210a8) --- updated-dependencies: - dependency-name: actions/dependency-review-action dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions - dependency-name: github/codeql-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniil Fedotov --- .github/workflows/dependendy-review.yml | 2 +- .github/workflows/ossf-scorecard.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/dependendy-review.yml b/.github/workflows/dependendy-review.yml index 1c730a2f6f..4b63d7659c 100644 --- a/.github/workflows/dependendy-review.yml +++ b/.github/workflows/dependendy-review.yml @@ -17,4 +17,4 @@ jobs: - name: 'Checkout Repository' uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: 'Dependency Review' - uses: actions/dependency-review-action@v3 + uses: actions/dependency-review-action@v4 diff --git a/.github/workflows/ossf-scorecard.yml b/.github/workflows/ossf-scorecard.yml index d0022c8b78..17ea5a0cc0 100644 --- a/.github/workflows/ossf-scorecard.yml +++ b/.github/workflows/ossf-scorecard.yml @@ -39,12 +39,12 @@ jobs: - # Upload the results to GitHub's code scanning dashboard. name: "Upload to results to dashboard" - uses: github/codeql-action/upload-sarif@e5f05b81d5b6ff8cfa111c80c22c5fd02a384118 # v3.23.0 + uses: github/codeql-action/upload-sarif@b7bf0a3ed3ecfa44160715d7c442788f65f0f923 # v3.23.2 with: sarif_file: results.sarif - name: "Upload analysis results as 'Job Artifact'" - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 + uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 with: name: SARIF file path: results.sarif From 11e098f04184b39e4a769ed724321142265a9e74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 13:57:33 -0500 Subject: [PATCH 13/17] Bump tj-actions/changed-files from 41.0.1 to 42.0.2 (#2626) Bumps [tj-actions/changed-files](https://github.com/tj-actions/changed-files) from 41.0.1 to 42.0.2. - [Release notes](https://github.com/tj-actions/changed-files/releases) - [Changelog](https://github.com/tj-actions/changed-files/blob/main/HISTORY.md) - [Commits](https://github.com/tj-actions/changed-files/compare/716b1e13042866565e00e85fd4ec490e186c4a2f...90a06d6ba9543371ab4df8eeca0be07ca6054959) --- updated-dependencies: - dependency-name: tj-actions/changed-files dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/atlas-image-build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/atlas-image-build.yaml b/.github/workflows/atlas-image-build.yaml index d3fd460218..3c80bbd24c 100644 --- a/.github/workflows/atlas-image-build.yaml +++ b/.github/workflows/atlas-image-build.yaml @@ -21,7 +21,7 @@ jobs: - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: fetch-depth: 0 - - uses: tj-actions/changed-files@716b1e13042866565e00e85fd4ec490e186c4a2f # v41.0.1 + - uses: tj-actions/changed-files@90a06d6ba9543371ab4df8eeca0be07ca6054959 # v42.0.2 name: Get changed files id: changed-files with: From 768c8aca8b31688175f64ea0065126641f6a7807 Mon Sep 17 00:00:00 2001 From: Daniil Fedotov Date: Wed, 31 Jan 2024 14:09:16 -0500 Subject: [PATCH 14/17] docs: Document building tools and running tests (#2580) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> --- BUILD.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/BUILD.md b/BUILD.md index d6040e62fb..6bcef3db5a 100644 --- a/BUILD.md +++ b/BUILD.md @@ -52,6 +52,14 @@ make test make build-controller ``` +To build kanister tools (kanctl and kando), use the following conmmand: +```sh +make build GOBORING=true BIN= ARCH= +``` + +This will build a selected binary `BIN` for a selected architecture `ARCH`. + + To build the controller OCI image: ```sh make release-controller \ @@ -100,6 +108,22 @@ helm upgrade kanister ./helm/kanister-operator \ Most of the Makefile targets can work in a non-Docker development setup, by setting the `DOCKER_BUILD` variable to `false`. +## Testing + +Kanister is using `check` library to extend go testing capabilities: https://github.com/kastenhq/check +It's recommended to write new tests using this library for consistency. + +`make test` runs all tests in the repository. +To run tests for specific package you can run `go test` in that package directory. +It's recommended to do that in build image shell, you can run it with `make shell`. + +The `check` library handles arguments differently from standard `go test` +- to run specific test, you can use `-check.f ` to filter test (or suite) names +- to increase verbosity, you can use `-check.v` or `-check.vv` +- to controll how many suites from the package run in parallel, you can use `-check.suitep ` + +See https://github.com/kastenhq/check and https://github.com/kastenhq/check/blob/v1/run.go#L30 for more information + ## Documentation The source of the documentation is found in the `docs` folder. They are written From 0bc591d95bb4a48fcc92873e26aefc4ea225061e Mon Sep 17 00:00:00 2001 From: Daniil Fedotov Date: Wed, 31 Jan 2024 17:08:27 -0500 Subject: [PATCH 15/17] docs: remove link to deleted doc section (#2638) Fixes #2496 The docs section no longer exists. Examples description are in the `examples/...` repo folders. --- examples/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index 159768cdc0..fdb1083c3d 100644 --- a/examples/README.md +++ b/examples/README.md @@ -5,8 +5,7 @@ blueprints, to make experimenting with Kanister easier. If you are new to Kanister, start with the `time-log` blueprint. After that, feel free to try out some of the more advanced examples like the blueprints for -MySQL, PgSQL, MongoDB and ElasticSearch, following the instructions in the -[Kanister documentation](https://docs.kanister.io/helm.html#kanister-enabled-applications). +MySQL, PgSQL, MongoDB and ElasticSearch, following the instructions in the corresponding folder. Every example has its own README.md with information on how to set things up and commands to be run. From 451e9f6a18afa1c78db6b24966529ed9eca1de1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:24:22 -0500 Subject: [PATCH 16/17] deps(github): Bump the docker group with 1 update (#2640) Bumps the docker group with 1 update: [docker/metadata-action](https://github.com/docker/metadata-action). Updates `docker/metadata-action` from 5.5.0 to 5.5.1 - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/dbef88086f6cef02e264edb7dbf63250c17cef6c...8e5442c4ef9f78752691e2d8f8d19755c6f78e81) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-patch dependency-group: docker ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/atlas-image-build.yaml | 2 +- .github/workflows/kanister-image-build.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/atlas-image-build.yaml b/.github/workflows/atlas-image-build.yaml index 3c80bbd24c..ff7b1b8977 100644 --- a/.github/workflows/atlas-image-build.yaml +++ b/.github/workflows/atlas-image-build.yaml @@ -39,7 +39,7 @@ jobs: uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Image metadata id: meta - uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0 + uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | diff --git a/.github/workflows/kanister-image-build.yaml b/.github/workflows/kanister-image-build.yaml index eca550a8b3..22f7f1bf01 100644 --- a/.github/workflows/kanister-image-build.yaml +++ b/.github/workflows/kanister-image-build.yaml @@ -44,7 +44,7 @@ jobs: uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0 - name: Image metadata id: meta - uses: docker/metadata-action@dbef88086f6cef02e264edb7dbf63250c17cef6c # v5.5.0 + uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | From ef67ce4d1cb0b4ae69742704f2dc1a6a27bd4885 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Fri, 2 Feb 2024 13:18:40 +0530 Subject: [PATCH 17/17] Disable networkpolicies creation for postgresql test app (#2647) --- pkg/app/postgresql.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/app/postgresql.go b/pkg/app/postgresql.go index 8cc6276d3b..4a7f612910 100644 --- a/pkg/app/postgresql.go +++ b/pkg/app/postgresql.go @@ -54,6 +54,7 @@ func NewPostgresDB(name string, subPath string) App { "auth.postgresPassword": "test@54321", "volumePermissions.enabled": "true", "persistence.subPath": subPath, + "primary.networkPolicy.enabled": "false", "primary.containerSecurityContext.seccompProfile.type": "Unconfined", "primary.containerSecurityContext.capabilities.add[0]": "CHOWN", "primary.containerSecurityContext.capabilities.add[1]": "FOWNER",