From 20df0ec005a1b26c98d45fa4c28d5fd424dada06 Mon Sep 17 00:00:00 2001 From: isindir Date: Sun, 25 Jun 2023 21:43:20 +0100 Subject: [PATCH] Reducing info level logging in controller, helm chart settings update and bug fix (#138) * Fix typo * Fix typo * Fix typo * Fix typo --- .circleci/config.yml | 10 +- .tool-versions | 9 +- Dockerfile | 4 +- Makefile | 6 +- README.md | 2 +- chart/helm3/sops-secrets-operator/Chart.yaml | 4 +- chart/helm3/sops-secrets-operator/README.md | 8 +- .../templates/operator.yaml | 18 +- .../tests/operator_test.yaml | 8 +- chart/helm3/sops-secrets-operator/values.yaml | 9 +- cmd/main.go | 5 +- docs/index.yaml | 178 ++++++++++-------- docs/sops-secrets-operator-0.15.1.tgz | Bin 0 -> 11640 bytes go.mod | 21 ++- go.sum | 40 ++-- internal/controllers/sopssecret_controller.go | 57 +++--- .../controllers/sopssecret_controller_test.go | 7 +- internal/controllers/suite_test.go | 3 +- 18 files changed, 211 insertions(+), 178 deletions(-) create mode 100644 docs/sops-secrets-operator-0.15.1.tgz diff --git a/.circleci/config.yml b/.circleci/config.yml index 0a02e122..e0b25d7c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -19,17 +19,17 @@ jobs: image: ubuntu-2204:2023.02.1 environment: &versions # https://github.com/kubernetes/kubernetes/releases - KUBECTL_VERSION: v1.27.2 + KUBECTL_VERSION: v1.27.3 # https://hub.docker.com/r/rancher/k3s/tags K3S_VERSION: v1.27.2-k3s1 # https://github.com/rancher/k3d/releases K3D_VERSION: v5.5.1 # https://github.com/helm/helm/releases - HELM_VERSION: v3.12.0 + HELM_VERSION: v3.12.1 # https://golang.org/dl/ - GOLANG_VERSION: "1.20.4" + GOLANG_VERSION: "1.20.5" # https://github.com/kubernetes-sigs/kubebuilder/releases - KUBEBUILDER_VERSION: 3.10.0 + KUBEBUILDER_VERSION: 3.11.0 # https://github.com/mozilla/sops/releases SOPS_VERSION: v3.7.3 # https://github.com/kubernetes-sigs/kustomize/releases @@ -43,7 +43,7 @@ jobs: # https://github.com/git-chglog/git-chglog/releases GIT_CHGLOG_VERSION: 0.15.4 # https://github.com/docker/buildx/releases - BUILDX_BINARY_VERSION: 0.10.5 + BUILDX_BINARY_VERSION: 0.11.0 DOCKER_BUILDKIT: 1 BUILDX_PLATFORMS: linux/amd64,linux/arm64 diff --git a/.tool-versions b/.tool-versions index ec2180cd..ca0e7c26 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,8 +1,8 @@ # UPDATE_HERE # https://github.com/kubernetes-sigs/kubebuilder/releases -kubebuilder 3.10.0 +kubebuilder 3.11.0 # https://golang.org/dl/ -golang 1.20.4 +golang 1.20.5 # https://github.com/mozilla/sops/releases sops 3.7.3 # https://github.com/kubernetes-sigs/kustomize/releases @@ -10,12 +10,13 @@ kustomize 5.0.3 # https://github.com/rancher/k3d/releases k3d 5.5.1 # https://github.com/kubernetes/kubernetes/releases -kubectl 1.27.2 +kubectl 1.27.3 # https://github.com/helm/helm/releases -helm 3.12.0 +helm 3.12.1 # https://github.com/norwoodj/helm-docs/releases helm-docs 1.11.0 # https://github.com/instrumenta/kubeval/releases kubeval v0.16.1 # https://github.com/git-chglog/git-chglog/releases git-chglog 0.15.4 +golangci-lint 1.53.3 diff --git a/Dockerfile b/Dockerfile index 983b0368..48a1beea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ # Build the manager binary # https://www.debian.org/releases/ # https://hub.docker.com/_/golang/tags?page=1&name=bullseye -FROM golang:1.20.4-bullseye as builder +FROM golang:1.20.5-bullseye as builder WORKDIR /workspace # Copy the Go Modules manifests @@ -22,7 +22,7 @@ RUN CGO_ENABLED=0 GO111MODULE=on go build -a -o manager cmd/main.go # https://wiki.ubuntu.com/Releases # https://hub.docker.com/_/ubuntu/tags?page=1&name=jammy -FROM ubuntu:jammy-20230425 +FROM ubuntu:jammy-20230605 RUN apt-get -y update \ && apt-get -y upgrade \ diff --git a/Makefile b/Makefile index 24c7cf1a..955b2737 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ # UPDATE_HERE GO := GOPROXY=https://proxy.golang.org go -SOPS_SEC_OPERATOR_VERSION := 0.9.0 +SOPS_SEC_OPERATOR_VERSION := 0.9.1 # https://github.com/kubernetes-sigs/controller-tools/releases CONTROLLER_GEN_VERSION := "v0.12.0" @@ -100,6 +100,10 @@ test-helm: ## Tests helm chart. ##@ Development +.PHONY: lint +lint: ## Run golangci-lint + golangci-lint run --path-prefix=. --timeout 3m --verbose + .PHONY: update-here update-here: ## Helper target to start editing all occurances with UPDATE_HERE. @echo "Update following files for release:" diff --git a/README.md b/README.md index 3a91c50a..362025d6 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ encrypted files stored in `git` repository. | Kubernetes | Sops | Chart | Operator | |---|---|---|---| -| v1.27.x | v3.7.3 | 0.15.0 | 0.9.0 | +| v1.27.x | v3.7.3 | 0.15.1 | 0.9.1 | | v1.26.x | v3.7.3 | 0.14.2 | 0.8.2 | | v1.25.x | v3.7.3 | 0.12.5 | 0.6.4 | | v1.24.x | v3.7.3 | 0.11.3 | 0.5.3 | diff --git a/chart/helm3/sops-secrets-operator/Chart.yaml b/chart/helm3/sops-secrets-operator/Chart.yaml index 2db872bf..b836b236 100644 --- a/chart/helm3/sops-secrets-operator/Chart.yaml +++ b/chart/helm3/sops-secrets-operator/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v2 # UPDATE_HERE -version: 0.15.0 -appVersion: 0.9.0 +version: 0.15.1 +appVersion: 0.9.1 type: application description: Helm chart deploys sops-secrets-operator name: sops-secrets-operator diff --git a/chart/helm3/sops-secrets-operator/README.md b/chart/helm3/sops-secrets-operator/README.md index 2fca0581..254d02d6 100644 --- a/chart/helm3/sops-secrets-operator/README.md +++ b/chart/helm3/sops-secrets-operator/README.md @@ -134,16 +134,18 @@ The following table lists the configurable parameters of the Sops-secrets-operat | healthProbes.readiness | object | `{"initialDelaySeconds":5,"periodSeconds":10}` | Readiness probe configuration | | image.pullPolicy | string | `"Always"` | Operator image pull policy | | image.repository | string | `"isindir/sops-secrets-operator"` | Operator image name | -| image.tag | string | `"0.9.0"` | Operator image tag | +| image.tag | string | `"0.9.1"` | Operator image tag | | imagePullSecrets | list | `[]` | Secrets to pull image from private docker repository | | initImage.pullPolicy | string | `"Always"` | Init container image pull policy | | initImage.repository | string | `"ubuntu"` | Init container image name | -| initImage.tag | string | `"jammy-20230425"` | Init container image tag | +| initImage.tag | string | `"jammy-20230605"` | Init container image tag | | kubeconfig | object | `{"enabled":false,"path":null}` | Paths to a kubeconfig. Only required if out-of-cluster. | -| logging | object | `{"encoder":"json","level":"info","stacktraceLevel":"error"}` | Logging configuration section suggested values Development Mode (encoder=consoleEncoder,logLevel=Debug,stackTraceLevel=Warn). Production Mode (encoder=jsonEncoder,logLevel=Info,stackTraceLevel=Error) (default) | +| logging | object | `{"development":false,"encoder":"json","level":"info","stacktraceLevel":"error","timeEncoding":"iso8601"}` | Logging configuration section suggested values Development Mode (encoder=consoleEncoder,logLevel=Debug,stackTraceLevel=Warn). Production Mode (encoder=jsonEncoder,logLevel=Info,stackTraceLevel=Error) (default) | +| logging.development | bool | `false` | Zap Development Mode enabled | | logging.encoder | string | `"json"` | Zap log encoding (one of 'json' or 'console') | | logging.level | string | `"info"` | Zap Level to configure the verbosity of logging. Can be one of 'debug', 'info', 'error', or any integer value > 0 which corresponds to custom debug levels of increasing verbosity | | logging.stacktraceLevel | string | `"error"` | Zap Level at and above which stacktraces are captured (one of 'info', 'error'). | +| logging.timeEncoding | string | `"iso8601"` | Zap time encoding (one of 'epoch', 'millis', 'nano', 'iso8601', 'rfc3339' or 'rfc3339nano'). Defaults to 'epoch'. | | metrics.enabled | bool | `false` | Enable prometheus metrics | | nameOverride | string | `""` | Overrides auto-generated short resource name | | nodeSelector | object | `{}` | Node selector to use for pod configuration | diff --git a/chart/helm3/sops-secrets-operator/templates/operator.yaml b/chart/helm3/sops-secrets-operator/templates/operator.yaml index f0b770f1..485113a9 100644 --- a/chart/helm3/sops-secrets-operator/templates/operator.yaml +++ b/chart/helm3/sops-secrets-operator/templates/operator.yaml @@ -70,16 +70,18 @@ spec: - /usr/local/bin/manager args: # The address the metric endpoint binds to. (default ":8080") - #- "--metrics-bind-address=127.0.0.1:8080" - - "--health-probe-bind-address=:{{ .Values.healthProbes.port }}" + #- "-metrics-bind-address=127.0.0.1:8080" + - "-health-probe-bind-address=:{{ .Values.healthProbes.port }}" # Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager. - - "--leader-elect" - - "--requeue-decrypt-after={{ .Values.requeueAfter }}" - - "--zap-encoder={{ .Values.logging.encoder }}" - - "--zap-log-level={{ .Values.logging.level }}" - - "--zap-stacktrace-level={{ .Values.logging.stacktraceLevel }}" + - "-leader-elect" + - "-requeue-decrypt-after={{ .Values.requeueAfter }}" + - "-zap-devel={{ .Values.logging.development }}" + - "-zap-encoder={{ .Values.logging.encoder }}" + - "-zap-log-level={{ .Values.logging.level }}" + - "-zap-stacktrace-level={{ .Values.logging.stacktraceLevel }}" + - "-zap-time-encoding={{ .Values.logging.timeEncoding }}" {{- if .Values.kubeconfig.enabled }} - - "--kubeconfig={{ .Values.kubeconfig.path | quote }}" + - "-kubeconfig={{ .Values.kubeconfig.path | quote }}" {{- end }} livenessProbe: httpGet: diff --git a/chart/helm3/sops-secrets-operator/tests/operator_test.yaml b/chart/helm3/sops-secrets-operator/tests/operator_test.yaml index f56d9f5e..7cd060b6 100644 --- a/chart/helm3/sops-secrets-operator/tests/operator_test.yaml +++ b/chart/helm3/sops-secrets-operator/tests/operator_test.yaml @@ -31,8 +31,8 @@ tests: app.kubernetes.io/instance: sops app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: sops-secrets-operator - app.kubernetes.io/version: 0.9.0 - helm.sh/chart: sops-secrets-operator-0.15.0 + app.kubernetes.io/version: 0.9.1 + helm.sh/chart: sops-secrets-operator-0.15.1 # custom name - it: should correctly render custome name @@ -170,7 +170,7 @@ tests: # UPDATE_HERE - equal: path: spec.template.spec.containers[0].image - value: isindir/sops-secrets-operator:0.9.0 + value: isindir/sops-secrets-operator:0.9.1 - equal: path: spec.template.spec.containers[0].imagePullPolicy value: Always @@ -198,7 +198,7 @@ tests: - equal: path: spec.template.spec.initContainers[0].image # UPDATE_HERE - value: ubuntu:jammy-20230425 + value: ubuntu:jammy-20230605 - equal: path: spec.template.spec.initContainers[0].imagePullPolicy value: Always diff --git a/chart/helm3/sops-secrets-operator/values.yaml b/chart/helm3/sops-secrets-operator/values.yaml index 5bc4a45b..c4fa0e94 100644 --- a/chart/helm3/sops-secrets-operator/values.yaml +++ b/chart/helm3/sops-secrets-operator/values.yaml @@ -13,7 +13,7 @@ image: # -- Operator image name repository: isindir/sops-secrets-operator # -- Operator image tag - tag: 0.9.0 + tag: 0.9.1 # -- Operator image pull policy pullPolicy: Always @@ -22,11 +22,10 @@ initImage: # -- Init container image name repository: ubuntu # -- Init container image tag - tag: jammy-20230425 + tag: jammy-20230605 # -- Init container image pull policy pullPolicy: Always - # -- Secrets to pull image from private docker repository imagePullSecrets: [] # -- Overrides auto-generated short resource name @@ -53,12 +52,16 @@ kubeconfig: # Development Mode (encoder=consoleEncoder,logLevel=Debug,stackTraceLevel=Warn). # Production Mode (encoder=jsonEncoder,logLevel=Info,stackTraceLevel=Error) (default) logging: + # -- Zap Development Mode enabled + development: false # -- Zap log encoding (one of 'json' or 'console') encoder: json # -- Zap Level to configure the verbosity of logging. Can be one of 'debug', 'info', 'error', or any integer value > 0 which corresponds to custom debug levels of increasing verbosity level: info # -- Zap Level at and above which stacktraces are captured (one of 'info', 'error'). stacktraceLevel: error + # -- Zap time encoding (one of 'epoch', 'millis', 'nano', 'iso8601', 'rfc3339' or 'rfc3339nano'). Defaults to 'epoch'. + timeEncoding: iso8601 healthProbes: # -- The address the probe endpoint binds to. (default ":8081") diff --git a/cmd/main.go b/cmd/main.go index 147bca50..1024b206 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -54,9 +54,11 @@ func main() { "Enable leader election for controller manager. "+ "Enabling this will ensure there is only one active controller manager.") flag.Int64Var(&requeueAfter, "requeue-decrypt-after", 5, "Requeue failed reconciliation in minutes (min 1).") + opts := zap.Options{ Development: true, } + opts.BindFlags(flag.CommandLine) flag.Parse() @@ -78,7 +80,8 @@ func main() { if requeueAfter < 1 { requeueAfter = 1 } - setupLog.Info( + + setupLog.V(0).Info( fmt.Sprintf( "SopsSecret reconciliation will be requeued after %d minutes after decryption failures", requeueAfter, diff --git a/docs/index.yaml b/docs/index.yaml index d378088f..f7b0119e 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -1,9 +1,29 @@ apiVersion: v1 entries: sops-secrets-operator: + - apiVersion: v2 + appVersion: 0.9.1 + created: "2023-06-25T13:06:52.301242+01:00" + description: Helm chart deploys sops-secrets-operator + digest: a66730e0b5c98a4f9bbd2a37389ef0f0df7545e90467575f87280f6c5c550692 + keywords: + - gitops + - sops + - kms + - encryption + maintainers: + - email: isindir@users.sf.net + name: isindir + name: sops-secrets-operator + sources: + - https://github.com/isindir/sops-secrets-operator.git + type: application + urls: + - https://isindir.github.io/sops-secrets-operator/sops-secrets-operator-0.15.1.tgz + version: 0.15.1 - apiVersion: v2 appVersion: 0.9.0 - created: "2023-05-29T22:41:52.176751+01:00" + created: "2023-06-25T13:06:52.300815+01:00" description: Helm chart deploys sops-secrets-operator digest: 9e9c728e2f57e9f3c0fed7d6736bdcf27e997ab7a80fd4357088699710ab5155 keywords: @@ -23,7 +43,7 @@ entries: version: 0.15.0 - apiVersion: v2 appVersion: 0.8.2 - created: "2023-05-29T22:41:52.176383+01:00" + created: "2023-06-25T13:06:52.300266+01:00" description: Helm chart deploys sops-secrets-operator digest: 03f041d0685f3e0a5fab8967a48238c8ff127700cba5da21efbe0cf13ca3874a keywords: @@ -43,7 +63,7 @@ entries: version: 0.14.2 - apiVersion: v2 appVersion: 0.8.1 - created: "2023-05-29T22:41:52.17601+01:00" + created: "2023-06-25T13:06:52.299673+01:00" description: Helm chart deploys sops-secrets-operator digest: 3aa754eddca4678191f2e2207936d35930650c7840c76e268802f3344589874b keywords: @@ -63,7 +83,7 @@ entries: version: 0.14.1 - apiVersion: v2 appVersion: 0.8.0 - created: "2023-05-29T22:41:52.175636+01:00" + created: "2023-06-25T13:06:52.299073+01:00" description: Helm chart deploys sops-secrets-operator digest: 4628acf98a445fb2d7884b1b1f2a452b845119082d4e338bdf9a4b7fc18d3f2a keywords: @@ -83,7 +103,7 @@ entries: version: 0.14.0 - apiVersion: v2 appVersion: 0.7.2 - created: "2023-05-29T22:41:52.175074+01:00" + created: "2023-06-25T13:06:52.298542+01:00" description: Helm chart deploys sops-secrets-operator digest: 8520815ba31b82d2caeb8d774268ec73f3bb0103e3781be6f2e0fbaa1b06c73c keywords: @@ -103,7 +123,7 @@ entries: version: 0.13.2 - apiVersion: v2 appVersion: 0.7.1 - created: "2023-05-29T22:41:52.174338+01:00" + created: "2023-06-25T13:06:52.297877+01:00" description: Helm chart deploys sops-secrets-operator digest: 9eee5e092a6cde86312ce9adbe48a102086370e39190a90147ed93563436b523 keywords: @@ -123,7 +143,7 @@ entries: version: 0.13.1 - apiVersion: v2 appVersion: 0.7.0 - created: "2023-05-29T22:41:52.173999+01:00" + created: "2023-06-25T13:06:52.297194+01:00" description: Helm chart deploys sops-secrets-operator digest: d45c9712aab117160235abebd33236b4257d52a6d1e6ec160ce15caa27a4065e keywords: @@ -143,7 +163,7 @@ entries: version: 0.13.0 - apiVersion: v2 appVersion: 0.6.4 - created: "2023-05-29T22:41:52.173658+01:00" + created: "2023-06-25T13:06:52.296784+01:00" description: Helm chart deploys sops-secrets-operator digest: 4aef82a20dd55cebcdd048f78d8f2aaec1e2fe758f26702ed1ce685fac46bb14 keywords: @@ -163,7 +183,7 @@ entries: version: 0.12.5 - apiVersion: v2 appVersion: 0.6.3 - created: "2023-05-29T22:41:52.173313+01:00" + created: "2023-06-25T13:06:52.296391+01:00" description: Helm chart deploys sops-secrets-operator digest: 84ffa14c8e3f77cfb7d9d79c481af6536bc192a035764becbda1fea5a0640053 keywords: @@ -183,7 +203,7 @@ entries: version: 0.12.4 - apiVersion: v2 appVersion: 0.6.2 - created: "2023-05-29T22:41:52.172971+01:00" + created: "2023-06-25T13:06:52.295962+01:00" description: Helm chart deploys sops-secrets-operator digest: 57aa897deb1b80d2b4e73b693d253871c600838b169ffbc0dc8e7738d8d9d86c keywords: @@ -203,7 +223,7 @@ entries: version: 0.12.3 - apiVersion: v2 appVersion: 0.6.2 - created: "2023-05-29T22:41:52.172629+01:00" + created: "2023-06-25T13:06:52.295415+01:00" description: Helm chart deploys sops-secrets-operator digest: bc22299e9f8a6aad73d20e1ba2461c480935b85a2ff51d4a00016b8de78c04b6 keywords: @@ -223,7 +243,7 @@ entries: version: 0.12.2 - apiVersion: v2 appVersion: 0.6.1 - created: "2023-05-29T22:41:52.172291+01:00" + created: "2023-06-25T13:06:52.295027+01:00" description: Helm chart deploys sops-secrets-operator digest: 06e31ab09ada6321d2dc4cc85418910398ea2a4811380cd81b717683be445613 keywords: @@ -243,7 +263,7 @@ entries: version: 0.12.1 - apiVersion: v2 appVersion: 0.6.0 - created: "2023-05-29T22:41:52.17195+01:00" + created: "2023-06-25T13:06:52.294638+01:00" description: Helm chart deploys sops-secrets-operator digest: 086103226c9292634e5d53b112b69e2546b7b1e6334d86dc2f1d0a77605ee910 keywords: @@ -263,7 +283,7 @@ entries: version: 0.12.0 - apiVersion: v2 appVersion: 0.5.3 - created: "2023-05-29T22:41:52.171564+01:00" + created: "2023-06-25T13:06:52.294219+01:00" description: Helm chart deploys sops-secrets-operator digest: 3545eae02b2d55ed907f537cc5efb4da164e752de3f38f973a8e698d20c5cac0 keywords: @@ -283,7 +303,7 @@ entries: version: 0.11.3 - apiVersion: v2 appVersion: 0.5.2 - created: "2023-05-29T22:41:52.171185+01:00" + created: "2023-06-25T13:06:52.293785+01:00" description: Helm chart deploys sops-secrets-operator digest: 1ce69fc85fbffac3d7151f22fbfc26788531a15f663203b6003c5494613e7910 keywords: @@ -303,7 +323,7 @@ entries: version: 0.11.2 - apiVersion: v2 appVersion: 0.5.1 - created: "2023-05-29T22:41:52.170815+01:00" + created: "2023-06-25T13:06:52.293363+01:00" description: Helm chart deploys sops-secrets-operator digest: 1c9da3867e1b4d0d0f6304f3ac128f0de8cd7bd9cfcce9604ea31c6705d7bd53 keywords: @@ -323,7 +343,7 @@ entries: version: 0.11.1 - apiVersion: v2 appVersion: 0.5.0 - created: "2023-05-29T22:41:52.169489+01:00" + created: "2023-06-25T13:06:52.292953+01:00" description: Helm chart deploys sops-secrets-operator digest: 1dc29756e76f909b4d48e27f5b451ef4deadc68a8de359a32cfdc87f508ad841 keywords: @@ -343,7 +363,7 @@ entries: version: 0.11.0 - apiVersion: v2 appVersion: 0.4.8 - created: "2023-05-29T22:41:52.169123+01:00" + created: "2023-06-25T13:06:52.292464+01:00" description: Helm chart deploys sops-secrets-operator digest: 54e2053fffcb019b86cb7c21884f7034a4efc895eec545105114b0848eec638a keywords: @@ -363,7 +383,7 @@ entries: version: 0.10.8 - apiVersion: v2 appVersion: 0.4.7 - created: "2023-05-29T22:41:52.168763+01:00" + created: "2023-06-25T13:06:52.291317+01:00" description: Helm chart deploys sops-secrets-operator digest: b7b04cd673ca2a781b47a656ea2e3e69957d6243a5151d36b341686a79b8abda keywords: @@ -383,7 +403,7 @@ entries: version: 0.10.7 - apiVersion: v2 appVersion: 0.4.6 - created: "2023-05-29T22:41:52.168409+01:00" + created: "2023-06-25T13:06:52.29092+01:00" description: Helm chart deploys sops-secrets-operator digest: 8e580ee17f943fa52a3bd06f9a7f2236b4b19dd6c85cfea6593a4fa18513ba52 keywords: @@ -403,7 +423,7 @@ entries: version: 0.10.6 - apiVersion: v2 appVersion: 0.4.5 - created: "2023-05-29T22:41:52.168028+01:00" + created: "2023-06-25T13:06:52.290498+01:00" description: Helm chart deploys sops-secrets-operator digest: 0e05931586ea4d2c81b6e00849addb8430e2923f70b2aed08bfd5a733dcf09d0 keywords: @@ -423,7 +443,7 @@ entries: version: 0.10.5 - apiVersion: v2 appVersion: 0.4.4 - created: "2023-05-29T22:41:52.167687+01:00" + created: "2023-06-25T13:06:52.290053+01:00" description: Helm chart deploys sops-secrets-operator digest: 606a826ae48759b4bb305a3fd3200342aa5b1bd1ab1afac9315f4a25a6184758 keywords: @@ -443,7 +463,7 @@ entries: version: 0.10.4 - apiVersion: v2 appVersion: 0.4.3 - created: "2023-05-29T22:41:52.167334+01:00" + created: "2023-06-25T13:06:52.289646+01:00" description: Helm chart deploys sops-secrets-operator digest: b329233d4fccf2d5377e1988b6e1858e1c69786e79fb56ce0b0cf65439f3228b keywords: @@ -463,7 +483,7 @@ entries: version: 0.10.3 - apiVersion: v2 appVersion: 0.4.2 - created: "2023-05-29T22:41:52.166938+01:00" + created: "2023-06-25T13:06:52.289262+01:00" description: Helm chart deploys sops-secrets-operator digest: d4ab3300dee58d2661db327cf205e821158cdae1bff032c3511d58f3ed97802b keywords: @@ -483,7 +503,7 @@ entries: version: 0.10.2 - apiVersion: v2 appVersion: 0.4.1 - created: "2023-05-29T22:41:52.166588+01:00" + created: "2023-06-25T13:06:52.288391+01:00" description: Helm chart deploys sops-secrets-operator digest: 7f7da6232c02453208b19d737d6b0fad795c3a0c7962efba092367f9827190a1 keywords: @@ -503,7 +523,7 @@ entries: version: 0.10.1 - apiVersion: v2 appVersion: 0.4.0 - created: "2023-05-29T22:41:52.166236+01:00" + created: "2023-06-25T13:06:52.28782+01:00" description: Helm chart deploys sops-secrets-operator digest: 35f3813680049bb629ad53be826418e524ca84845f690d4957fd8ee3533a4b32 keywords: @@ -523,7 +543,7 @@ entries: version: 0.10.0 - apiVersion: v2 appVersion: 0.3.7 - created: "2023-05-29T22:41:52.191425+01:00" + created: "2023-06-25T13:06:52.319632+01:00" description: Helm chart deploys sops-secrets-operator digest: 222eeff7f68ed50aa3ef0281b730d530b6bea56598fd3aa432c41e76ea42af20 keywords: @@ -543,7 +563,7 @@ entries: version: 0.9.7 - apiVersion: v2 appVersion: 0.3.6 - created: "2023-05-29T22:41:52.191073+01:00" + created: "2023-06-25T13:06:52.319236+01:00" description: Helm chart deploys sops-secrets-operator digest: b4f8fe41e191f51833c4af0299fc6c2c554b04228ece8ce019015b4166d06468 keywords: @@ -563,7 +583,7 @@ entries: version: 0.9.6 - apiVersion: v2 appVersion: 0.3.5 - created: "2023-05-29T22:41:52.190717+01:00" + created: "2023-06-25T13:06:52.318845+01:00" description: Helm chart deploys sops-secrets-operator digest: 7ab3970270bb4fed2f7fc7c434ad5548f4af8d1e0aa29b8985e46bcdc805f4d2 keywords: @@ -583,7 +603,7 @@ entries: version: 0.9.5 - apiVersion: v2 appVersion: 0.3.4 - created: "2023-05-29T22:41:52.190385+01:00" + created: "2023-06-25T13:06:52.31848+01:00" description: Helm chart deploys sops-secrets-operator digest: 69bc585f2d67a7658f65c184f1522810d5d18f72ed52886fc8c211cc3bd79678 keywords: @@ -603,7 +623,7 @@ entries: version: 0.9.4 - apiVersion: v2 appVersion: 0.3.3 - created: "2023-05-29T22:41:52.19004+01:00" + created: "2023-06-25T13:06:52.318087+01:00" description: Helm chart deploys sops-secrets-operator digest: 4c45b12d750f8f846304c579c428c1e5b84a8fd45033cb84ce607f1437bdc71a keywords: @@ -623,7 +643,7 @@ entries: version: 0.9.3 - apiVersion: v2 appVersion: 0.3.2 - created: "2023-05-29T22:41:52.189698+01:00" + created: "2023-06-25T13:06:52.317693+01:00" description: Helm chart deploys sops-secrets-operator digest: dbec66ae148cd665612f9b69e0dd139264c47744c797cf504a26556c77ae2130 keywords: @@ -643,7 +663,7 @@ entries: version: 0.9.2 - apiVersion: v2 appVersion: 0.3.1 - created: "2023-05-29T22:41:52.189327+01:00" + created: "2023-06-25T13:06:52.317291+01:00" description: Helm chart deploys sops-secrets-operator digest: 6228534471c0bab5eca824d98963adce99d4754bf03f37130529ac52536c79ad keywords: @@ -663,7 +683,7 @@ entries: version: 0.9.1 - apiVersion: v2 appVersion: 0.3.0 - created: "2023-05-29T22:41:52.188923+01:00" + created: "2023-06-25T13:06:52.316901+01:00" description: Helm chart deploys sops-secrets-operator digest: b7f077f8acac1b6ec60d0c0eb6326ab33cf3e4b9fb1ee8d94b1fa21f96aa7383 keywords: @@ -683,7 +703,7 @@ entries: version: 0.9.0 - apiVersion: v2 appVersion: 0.2.2 - created: "2023-05-29T22:41:52.188313+01:00" + created: "2023-06-25T13:06:52.31647+01:00" description: Helm chart deploys sops-secrets-operator digest: 39d3d35a28a405e7baf82d507fa642966c2705ac3ca2f10077186a7fec5de1f6 keywords: @@ -703,7 +723,7 @@ entries: version: 0.8.4 - apiVersion: v2 appVersion: 0.2.1 - created: "2023-05-29T22:41:52.187994+01:00" + created: "2023-06-25T13:06:52.315956+01:00" description: Helm chart deploys sops-secrets-operator digest: 4a1a3299532a4ec61acb61db45d763385bc3c2bd50c9c1707e3ba258498b5ee5 keywords: @@ -723,7 +743,7 @@ entries: version: 0.8.3 - apiVersion: v2 appVersion: 0.2.1 - created: "2023-05-29T22:41:52.187674+01:00" + created: "2023-06-25T13:06:52.315237+01:00" description: Helm chart deploys sops-secrets-operator digest: d328b4e165c3945430e196a853836dcee9982929fe24455021ddb885099d5334 keywords: @@ -743,7 +763,7 @@ entries: version: 0.8.2 - apiVersion: v2 appVersion: 0.2.0 - created: "2023-05-29T22:41:52.187354+01:00" + created: "2023-06-25T13:06:52.314717+01:00" description: Helm chart deploys sops-secrets-operator digest: d0ac8b738d0f10d64b2fb78c4386efe91de39aa88a4b107fdf9d93a82d18573c keywords: @@ -763,7 +783,7 @@ entries: version: 0.8.1 - apiVersion: v2 appVersion: 0.2.0 - created: "2023-05-29T22:41:52.187028+01:00" + created: "2023-06-25T13:06:52.314344+01:00" description: Helm chart deploys sops-secrets-operator digest: 289d7c6c96f858fe15427b1858fbfcdec373fc345acf52e667df4ca5ee729c10 keywords: @@ -783,7 +803,7 @@ entries: version: 0.8.0 - apiVersion: v2 appVersion: 0.1.17 - created: "2023-05-29T22:41:52.186693+01:00" + created: "2023-06-25T13:06:52.313976+01:00" description: sops secrets operator digest: 1c3c4bba7d66a7621beced04856d9904260558fe10369513743bc322d69482c1 keywords: @@ -803,7 +823,7 @@ entries: version: 0.7.6 - apiVersion: v2 appVersion: 0.1.16 - created: "2023-05-29T22:41:52.186403+01:00" + created: "2023-06-25T13:06:52.313491+01:00" description: sops secrets operator digest: c526d5d4b9c7c2cce1d9da2c75b4e9be7a994f24dce159a659189414a8725eae keywords: @@ -823,7 +843,7 @@ entries: version: 0.7.5 - apiVersion: v2 appVersion: 0.1.16 - created: "2023-05-29T22:41:52.186116+01:00" + created: "2023-06-25T13:06:52.313022+01:00" description: sops secrets operator digest: 572c9015988b76869b58997e02a0c64152283e559721e4883d54f1258a57e8b7 keywords: @@ -843,7 +863,7 @@ entries: version: 0.7.4 - apiVersion: v2 appVersion: 0.1.15 - created: "2023-05-29T22:41:52.185827+01:00" + created: "2023-06-25T13:06:52.312691+01:00" description: sops secrets operator digest: 84365f8e919ba9d3a00cfa50435cce6c63a8383357b2fde062b7aab8baeca6eb keywords: @@ -863,7 +883,7 @@ entries: version: 0.7.3 - apiVersion: v2 appVersion: 0.1.14 - created: "2023-05-29T22:41:52.185539+01:00" + created: "2023-06-25T13:06:52.312371+01:00" description: sops secrets operator digest: a1f2375080df20421701a33179b8e947ee682a70084d83d85da707889871ad64 keywords: @@ -883,7 +903,7 @@ entries: version: 0.7.2 - apiVersion: v2 appVersion: 0.1.13 - created: "2023-05-29T22:41:52.185252+01:00" + created: "2023-06-25T13:06:52.312051+01:00" description: sops secrets operator digest: 2e81dc4e4d49d9cd802aff263f005e04fb57df07f33b3ce8643ab287dfd3a7fb keywords: @@ -903,7 +923,7 @@ entries: version: 0.7.1 - apiVersion: v2 appVersion: 0.1.12 - created: "2023-05-29T22:41:52.184953+01:00" + created: "2023-06-25T13:06:52.311729+01:00" description: sops secrets operator digest: 81f59ed60bfa8204ed285476f9ed96a45a6f4e7cc6940a5d246c9241573d93d5 keywords: @@ -923,7 +943,7 @@ entries: version: 0.7.0 - apiVersion: v2 appVersion: 0.1.12 - created: "2023-05-29T22:41:52.184611+01:00" + created: "2023-06-25T13:06:52.3114+01:00" description: sops secrets operator digest: 91c3fbda73ba2d860bdaa21e37bf9afbc260ff767b377a144d0181d116a7ee34 keywords: @@ -943,7 +963,7 @@ entries: version: 0.6.8 - apiVersion: v2 appVersion: 0.1.12 - created: "2023-05-29T22:41:52.184214+01:00" + created: "2023-06-25T13:06:52.311066+01:00" description: sops secrets operator digest: 89d9d41d70d4dafcfb957bd48776ad779d0cef7dbb1ab2daf0b745a53dd6e3c6 maintainers: @@ -958,7 +978,7 @@ entries: version: 0.6.7 - apiVersion: v2 appVersion: 0.1.11 - created: "2023-05-29T22:41:52.183489+01:00" + created: "2023-06-25T13:06:52.310716+01:00" description: sops secrets operator digest: 7b0a65fd6fa9bafa3fd11bfef1a5f91f1e17d8cb8ad65b6377ffdc4d12495d01 maintainers: @@ -973,7 +993,7 @@ entries: version: 0.6.6 - apiVersion: v2 appVersion: 0.1.10 - created: "2023-05-29T22:41:52.183208+01:00" + created: "2023-06-25T13:06:52.310347+01:00" description: sops secrets operator digest: fac31d6cc862cb7b9a81aee52ba1fc4183d70bdcb7424c3dbdd087fb53246b30 maintainers: @@ -988,7 +1008,7 @@ entries: version: 0.6.5 - apiVersion: v2 appVersion: 0.1.9 - created: "2023-05-29T22:41:52.182928+01:00" + created: "2023-06-25T13:06:52.309708+01:00" description: sops secrets operator digest: 01347c27e37dfff999ebcee12aae6d0aafa092d7c3b221d566cdf0abe71f4d5a maintainers: @@ -1003,7 +1023,7 @@ entries: version: 0.6.4 - apiVersion: v2 appVersion: 0.1.8 - created: "2023-05-29T22:41:52.182655+01:00" + created: "2023-06-25T13:06:52.309381+01:00" description: sops secrets operator digest: 6348b1b1b0e8d3df3926e437b2c0f4ad63268d26e2cb54cbecbb564102e6b19c maintainers: @@ -1018,7 +1038,7 @@ entries: version: 0.6.3 - apiVersion: v2 appVersion: 0.1.7 - created: "2023-05-29T22:41:52.182402+01:00" + created: "2023-06-25T13:06:52.308014+01:00" description: sops secrets operator digest: 710c1c9fa73a2ebf791fda4a608b5e29072d42c0b68c803c7bbeed54a582fd7f maintainers: @@ -1033,7 +1053,7 @@ entries: version: 0.6.2 - apiVersion: v2 appVersion: 0.1.7 - created: "2023-05-29T22:41:52.182135+01:00" + created: "2023-06-25T13:06:52.307722+01:00" description: sops secrets operator digest: f2a606c3837843241bb9d59adc02c38e1cca98753c602b9f758cc61d735ca7cd maintainers: @@ -1048,7 +1068,7 @@ entries: version: 0.6.1 - apiVersion: v2 appVersion: 0.1.6 - created: "2023-05-29T22:41:52.181865+01:00" + created: "2023-06-25T13:06:52.307434+01:00" description: sops secrets operator digest: a2bbf9b39ec5f5b82965037f8f245fb3122adbe31b1c7d336fa1f4cddb228b88 maintainers: @@ -1063,7 +1083,7 @@ entries: version: 0.6.0 - apiVersion: v1 appVersion: 0.1.8 - created: "2023-05-29T22:41:52.181607+01:00" + created: "2023-06-25T13:06:52.307137+01:00" description: sops secrets operator digest: b89986787f33bb6ed9fb0c658431be8646302e9c1a24537c26269c62249fa071 maintainers: @@ -1077,7 +1097,7 @@ entries: version: 0.5.3 - apiVersion: v1 appVersion: 0.1.7 - created: "2023-05-29T22:41:52.181382+01:00" + created: "2023-06-25T13:06:52.306894+01:00" description: sops secrets operator digest: 9467709cf6fbe8d9d779cedf15fe388af172b609f3ca452ef3d8894f39d999df maintainers: @@ -1091,7 +1111,7 @@ entries: version: 0.5.2 - apiVersion: v1 appVersion: 0.1.7 - created: "2023-05-29T22:41:52.181162+01:00" + created: "2023-06-25T13:06:52.306646+01:00" description: sops secrets operator digest: b54b5d8497564ddc04bd6d8b105eb0a3559e82ae1f6aab2f59ed3e426f119287 maintainers: @@ -1105,7 +1125,7 @@ entries: version: 0.5.1 - apiVersion: v1 appVersion: 0.1.6 - created: "2023-05-29T22:41:52.180942+01:00" + created: "2023-06-25T13:06:52.306408+01:00" description: sops secrets operator digest: 177f1ed214d6e72eda589a6ab155a417c1a4229bfda11e87f24af125a3542ad1 maintainers: @@ -1119,7 +1139,7 @@ entries: version: 0.5.0 - apiVersion: v2 appVersion: 0.1.5 - created: "2023-05-29T22:41:52.180724+01:00" + created: "2023-06-25T13:06:52.306157+01:00" description: sops secrets operator digest: 1535e130357afa883db0b3d30735c817d3b7d412fe5bdfd71534d0c08defa7d1 maintainers: @@ -1134,7 +1154,7 @@ entries: version: 0.4.8 - apiVersion: v2 appVersion: 0.1.5 - created: "2023-05-29T22:41:52.180468+01:00" + created: "2023-06-25T13:06:52.305869+01:00" description: sops secrets operator digest: 19b11dc2d1945f3c436a7d03763b4391d4a382fc13ea515d25422827d859d6d0 maintainers: @@ -1149,7 +1169,7 @@ entries: version: 0.4.7 - apiVersion: v2 appVersion: 0.1.5 - created: "2023-05-29T22:41:52.180249+01:00" + created: "2023-06-25T13:06:52.305639+01:00" description: sops secrets operator digest: c839e5d3374b948d27ad49643411f4891fdec44d179dea06423bb0d6e29d5e32 maintainers: @@ -1164,7 +1184,7 @@ entries: version: 0.4.6 - apiVersion: v2 appVersion: 0.1.4 - created: "2023-05-29T22:41:52.180012+01:00" + created: "2023-06-25T13:06:52.305394+01:00" description: sops secrets operator digest: c71f9f66be32f8b9d3c8d780b09b2455a40fd9755314004efd2bb8d379dafe3c maintainers: @@ -1179,7 +1199,7 @@ entries: version: 0.4.5 - apiVersion: v2 appVersion: 0.1.3 - created: "2023-05-29T22:41:52.179757+01:00" + created: "2023-06-25T13:06:52.305164+01:00" description: sops secrets operator digest: f3f2f89d4ef6018776df0a12a63dd2f9c9519b9d1ac03a9a405e31d0fd902ba0 maintainers: @@ -1194,7 +1214,7 @@ entries: version: 0.4.4 - apiVersion: v2 appVersion: 0.1.2 - created: "2023-05-29T22:41:52.179257+01:00" + created: "2023-06-25T13:06:52.304942+01:00" description: sops secrets operator digest: 1fd5eed318627f5ed0656f4e8ce4a25729568a1626ae313bcbe21050f5f26240 maintainers: @@ -1209,7 +1229,7 @@ entries: version: 0.4.3 - apiVersion: v2 appVersion: 0.1.2 - created: "2023-05-29T22:41:52.17907+01:00" + created: "2023-06-25T13:06:52.304714+01:00" description: sops secrets operator digest: 1f4f9869c75f0922e83ba5d530e101bd4252d5c1c31365800cc9d1425680cf18 maintainers: @@ -1224,7 +1244,7 @@ entries: version: 0.4.2 - apiVersion: v2 appVersion: 0.1.1 - created: "2023-05-29T22:41:52.178884+01:00" + created: "2023-06-25T13:06:52.304491+01:00" description: sops secrets operator digest: 6b054a4e9f261eea3cb84ee2e70b87b24780f1703e2c218ea5f69b7f82d1876f maintainers: @@ -1239,7 +1259,7 @@ entries: version: 0.4.1 - apiVersion: v2 appVersion: 0.1.0 - created: "2023-05-29T22:41:52.178705+01:00" + created: "2023-06-25T13:06:52.304113+01:00" description: sops secrets operator digest: 78b62ab37eac1b45f0a68a9752a3615c5d3f1c960bb4057e665923ce104931cf maintainers: @@ -1254,7 +1274,7 @@ entries: version: 0.4.0 - apiVersion: v1 appVersion: 0.1.5 - created: "2023-05-29T22:41:52.178524+01:00" + created: "2023-06-25T13:06:52.303617+01:00" description: sops secrets operator digest: 41baa3c580cb9d8951c18513a4f04c4dbbfad99de9c62f53de2450c0c7b76725 maintainers: @@ -1268,7 +1288,7 @@ entries: version: 0.3.7 - apiVersion: v1 appVersion: 0.1.5 - created: "2023-05-29T22:41:52.1783+01:00" + created: "2023-06-25T13:06:52.303368+01:00" description: sops secrets operator digest: 1103b1f7bf7af3f400c172227cd5a3659f3a03e5e8158b19ba0b25f7ed45208b maintainers: @@ -1282,7 +1302,7 @@ entries: version: 0.3.6 - apiVersion: v1 appVersion: 0.1.5 - created: "2023-05-29T22:41:52.178092+01:00" + created: "2023-06-25T13:06:52.303158+01:00" description: sops secrets operator digest: 15c72ba7fb09d0e980ec32fd94f56893c439c05c435281a9ab9c8bc94bd20063 maintainers: @@ -1296,7 +1316,7 @@ entries: version: 0.3.5 - apiVersion: v1 appVersion: 0.1.4 - created: "2023-05-29T22:41:52.177888+01:00" + created: "2023-06-25T13:06:52.302944+01:00" description: sops secrets operator digest: 025a6a6381b75286756ef55105ace6e911e5a5818b495ede6356cc8ec572aeac maintainers: @@ -1310,7 +1330,7 @@ entries: version: 0.3.4 - apiVersion: v1 appVersion: 0.1.3 - created: "2023-05-29T22:41:52.177694+01:00" + created: "2023-06-25T13:06:52.302742+01:00" description: sops secrets operator digest: f61b070b640169439cf4ab500047c1e356748a85871f7aeefde46d63d87d453a maintainers: @@ -1324,7 +1344,7 @@ entries: version: 0.3.3 - apiVersion: v1 appVersion: 0.1.2 - created: "2023-05-29T22:41:52.177506+01:00" + created: "2023-06-25T13:06:52.302533+01:00" description: sops secrets operator digest: 2b37dc4e545e8a9540f6b7693079b98bf161ec5a68899defcfc9420bdcbb33e3 maintainers: @@ -1338,7 +1358,7 @@ entries: version: 0.3.2 - apiVersion: v1 appVersion: 0.1.1 - created: "2023-05-29T22:41:52.177318+01:00" + created: "2023-06-25T13:06:52.302223+01:00" description: sops secrets operator digest: 2e2762b8f9d66aab0caacde225955fec8bfd5a4cc10dc6943a1de3809dda4091 maintainers: @@ -1352,7 +1372,7 @@ entries: version: 0.3.1 - apiVersion: v1 appVersion: 0.1.0 - created: "2023-05-29T22:41:52.17713+01:00" + created: "2023-06-25T13:06:52.301901+01:00" description: sops secrets operator digest: ce84f5b64402a582c7689cb842ba03fb10f968c38b57dc9e05f588493128019a maintainers: @@ -1366,7 +1386,7 @@ entries: version: 0.3.0 - apiVersion: v2 appVersion: 0.0.10 - created: "2023-05-29T22:41:52.176948+01:00" + created: "2023-06-25T13:06:52.301612+01:00" description: sops secrets operator digest: 5e4c8bc37ea2c819c55b288c0a5e76ff8c9c02be591bd53776606666af45581c maintainers: @@ -1381,7 +1401,7 @@ entries: version: 0.2.1 - apiVersion: v1 appVersion: 0.0.10 - created: "2023-05-29T22:41:52.165858+01:00" + created: "2023-06-25T13:06:52.287305+01:00" description: sops secrets operator digest: 50b8ebab19008dfc43de1eaee8b0f6287f7a55134585dc6ae88df2520d779f8f maintainers: @@ -1393,4 +1413,4 @@ entries: urls: - https://isindir.github.io/sops-secrets-operator/sops-secrets-operator-0.1.10.tgz version: 0.1.10 -generated: "2023-05-29T22:41:52.165559+01:00" +generated: "2023-06-25T13:06:52.286456+01:00" diff --git a/docs/sops-secrets-operator-0.15.1.tgz b/docs/sops-secrets-operator-0.15.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..ffd3c311fa7cacbf386db478dc1de0a30cdc315d GIT binary patch literal 11640 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