From 0839345f9a72cd7c432ca07fc6127e25eaff3481 Mon Sep 17 00:00:00 2001 From: Samuel Attwood Date: Fri, 18 Feb 2022 13:18:58 -0500 Subject: [PATCH] make charts --- assets/vals-operator/vals-operator-0.4.1.tgz | Bin 0 -> 5890 bytes .../vals-operator/0.4.1/.gitignore | 49 +++++++ .../vals-operator/0.4.1/Chart.yaml | 16 +++ .../vals-operator/0.4.1/README.md | 33 +++++ .../vals-operator/0.4.1/app-readme.md | 9 ++ .../vals-operator/0.4.1/crds/valssecrets.yaml | 130 ++++++++++++++++++ .../vals-operator/0.4.1/questions.yaml | 26 ++++ .../vals-operator/0.4.1/templates/NOTES.txt | 0 .../0.4.1/templates/_helpers.tpl | 62 +++++++++ .../vals-operator/0.4.1/templates/crds.yaml | 6 + .../0.4.1/templates/deployment.yaml | 73 ++++++++++ .../0.4.1/templates/serviceaccount.yaml | 64 +++++++++ .../0.4.1/templates/servicemonitor.yaml | 37 +++++ .../vals-operator/0.4.1/values.yaml | 106 ++++++++++++++ index.yaml | 20 +++ 15 files changed, 631 insertions(+) create mode 100644 assets/vals-operator/vals-operator-0.4.1.tgz create mode 100644 charts/vals-operator/vals-operator/0.4.1/.gitignore create mode 100644 charts/vals-operator/vals-operator/0.4.1/Chart.yaml create mode 100644 charts/vals-operator/vals-operator/0.4.1/README.md create mode 100644 charts/vals-operator/vals-operator/0.4.1/app-readme.md create mode 100644 charts/vals-operator/vals-operator/0.4.1/crds/valssecrets.yaml create mode 100644 charts/vals-operator/vals-operator/0.4.1/questions.yaml create mode 100644 charts/vals-operator/vals-operator/0.4.1/templates/NOTES.txt create mode 100644 charts/vals-operator/vals-operator/0.4.1/templates/_helpers.tpl create mode 100644 charts/vals-operator/vals-operator/0.4.1/templates/crds.yaml create mode 100644 charts/vals-operator/vals-operator/0.4.1/templates/deployment.yaml create mode 100644 charts/vals-operator/vals-operator/0.4.1/templates/serviceaccount.yaml create mode 100644 charts/vals-operator/vals-operator/0.4.1/templates/servicemonitor.yaml create mode 100644 charts/vals-operator/vals-operator/0.4.1/values.yaml diff --git a/assets/vals-operator/vals-operator-0.4.1.tgz b/assets/vals-operator/vals-operator-0.4.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..12e1010b4b54eb01ef9bf217664c1a5b079830b0 GIT binary patch literal 5890 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 YuH2Qo@@FXj9{>RV|6@1x{Q!0V0FwiFJ^%m! literal 0 HcmV?d00001 diff --git a/charts/vals-operator/vals-operator/0.4.1/.gitignore b/charts/vals-operator/vals-operator/0.4.1/.gitignore new file mode 100644 index 000000000..d9f7c8d36 --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/.gitignore @@ -0,0 +1,49 @@ +# These are some examples of commonly ignored file patterns. +# You should customize this list as applicable to your project. +# Learn more about .gitignore: +# https://www.atlassian.com/git/tutorials/saving-changes/gitignore + +# Node artifact files +node_modules/ +dist/ + +# Compiled Java class files +*.class + +# Compiled Python bytecode +*.py[cod] + +# Log files +*.log + +# Package files +*.jar + +# Maven +target/ +dist/ + +# JetBrains IDE +.idea/ + +# Unit test reports +TEST*.xml + +# Generated by MacOS +.DS_Store + +# Generated by Windows +Thumbs.db + +# Applications +*.app +*.exe +*.war + +# Large media files +*.mp4 +*.tiff +*.avi +*.flv +*.mov +*.wmv diff --git a/charts/vals-operator/vals-operator/0.4.1/Chart.yaml b/charts/vals-operator/vals-operator/0.4.1/Chart.yaml new file mode 100644 index 000000000..cea4ed30e --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/Chart.yaml @@ -0,0 +1,16 @@ +annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Vals-Operator + catalog.cattle.io/release-name: vals-operator +apiVersion: v2 +appVersion: v0.5.0 +description: This helm chart installs the Digitalis Vals Operator to manage sync secrets + from supported backends into Kubernetes +icon: https://digitalis.io/wp-content/uploads/2020/06/cropped-Digitalis-512x512-Blue_Digitalis-512x512-Blue-32x32.png +kubeVersion: '>= 1.19' +maintainers: +- email: info@digitalis.io + name: Digitalis.IO +name: vals-operator +type: application +version: 0.4.1 diff --git a/charts/vals-operator/vals-operator/0.4.1/README.md b/charts/vals-operator/vals-operator/0.4.1/README.md new file mode 100644 index 000000000..3efb45778 --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/README.md @@ -0,0 +1,33 @@ +vals-operator +============= +This helm chart installs the Digitalis Vals Operator to manage sync secrets from supported backends into Kubernetes + + +## Chart Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| affinity | object | `{}` | | +| args | list | `[]` | | +| env | list | `[]` | | +| fullnameOverride | string | `""` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"digitalisdocker/vals-operator"` | | +| image.tag | string | `""` | | +| imagePullSecrets | list | `[]` | | +| manageCrds | bool | `true` | | +| nameOverride | string | `""` | | +| nodeSelector | object | `{}` | | +| podSecurityContext | object | `{}` | | +| replicaCount | int | `1` | | +| resources | object | `{}` | | +| secretEnv | list | `[]` | | +| securityContext | object | `{}` | | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.create | bool | `true` | | +| serviceAccount.name | string | `""` | | +| serviceMonitor.enabled | bool | `false` | | +| serviceMonitor.labels | object | `{}` | | +| tolerations | list | `[]` | | +| volumeMounts | list | `[]` | | +| volumes | list | `[]` | | diff --git a/charts/vals-operator/vals-operator/0.4.1/app-readme.md b/charts/vals-operator/vals-operator/0.4.1/app-readme.md new file mode 100644 index 000000000..3458f2059 --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/app-readme.md @@ -0,0 +1,9 @@ +# Vals-Operator + +Here at [Digitalis](https://digitalis.io) we love [vals](https://github.com/variantdev/vals), it's a tool we use daily to keep secrets stored securely. We also use [secrets-manager](https://github.com/tuenti/secrets-manager) on the Kubernetes deployment we manage. Inspired by these two wonderful tools we have created this operator. + +*vals-operator* syncs secrets from any secrets store supported by [vals](https://github.com/variantdev/vals) into Kubernetes. It works very similarly to [secrets-manager](https://github.com/tuenti/secrets-manager) and the code is actually based on it. Where they differ is that it not just supports HashiCorp Vault but many other secrets stores. + +## Mirroring secrets + +We have also added the ability to copy secrets between namespaces. It uses the format `ref+k8s://namespace/secret#key`. This way you can keep secrets generated in one namespace in sync with any other namespace in the cluster. diff --git a/charts/vals-operator/vals-operator/0.4.1/crds/valssecrets.yaml b/charts/vals-operator/vals-operator/0.4.1/crds/valssecrets.yaml new file mode 100644 index 000000000..406ba1e83 --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/crds/valssecrets.yaml @@ -0,0 +1,130 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.4.1 + "helm.sh/hook": crd-install + "helm.sh/hook-delete-policy": "before-hook-creation" + creationTimestamp: null + name: valssecrets.digitalis.io +spec: + group: digitalis.io + names: + kind: ValsSecret + listKind: ValsSecretList + plural: valssecrets + singular: valssecret + scope: Namespaced + versions: + - name: v1 + schema: + openAPIV3Schema: + description: ValsSecret is the Schema for the valssecrets API + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: ValsSecretSpec defines the desired state of ValsSecret + properties: + data: + additionalProperties: + properties: + encoding: + description: Encoding type for the secret. Only base64 supported. + Optional + type: string + ref: + description: Ref value to the secret in the format ref+backend://path + https://github.com/variantdev/vals + type: string + required: + - ref + type: object + type: object + databases: + items: + properties: + driver: + description: Defines the database type + type: string + hosts: + description: List of hosts to connect to, they'll be tried in + sequence until one succeeds + items: + type: string + type: array + loginCredentials: + description: Credentials to access the database + properties: + namespace: + description: Optional namespace of the secret, default current + namespace + type: string + passwordKey: + description: Key in the secret containing the database username + type: string + secretName: + description: Name of the secret containing the credentials + to be able to log in to the database + type: string + usernameKey: + description: Key in the secret containing the database username + type: string + required: + - passwordKey + - secretName + type: object + passwordKey: + description: Key in the secret containing the database username + type: string + port: + description: Database port number + type: integer + userHost: + description: Used for MySQL only, the host part for the username + type: string + usernameKey: + description: Key in the secret containing the database username + type: string + required: + - driver + - hosts + - passwordKey + type: object + type: array + name: + type: string + ttl: + format: int64 + type: integer + type: + type: string + required: + - data + type: object + status: + description: ValsSecretStatus defines the observed state of ValsSecret + type: object + type: object + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/charts/vals-operator/vals-operator/0.4.1/questions.yaml b/charts/vals-operator/vals-operator/0.4.1/questions.yaml new file mode 100644 index 000000000..7976cff0c --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/questions.yaml @@ -0,0 +1,26 @@ +questions: +#image configurations +- variable: image.repository + default: "digitalisdocker/vals-operator" + description: image registry + type: string + label: Image Registry + group: "Container Images" +- variable: image.tag + default: "v0.3.0" + description: Image tag + type: string + label: Image Tag + group: "Container Images" +- variable: imagePullSecrets + default: "" + description: secret name to pull image + type: string + label: Image Pull Secrets + group: "Container Images" +- variable: environmentSecret + default: "" + description: "The secret containing env variables to access the backend secrets store." + label: Config Secret + type: string + group: "Settings" diff --git a/charts/vals-operator/vals-operator/0.4.1/templates/NOTES.txt b/charts/vals-operator/vals-operator/0.4.1/templates/NOTES.txt new file mode 100644 index 000000000..e69de29bb diff --git a/charts/vals-operator/vals-operator/0.4.1/templates/_helpers.tpl b/charts/vals-operator/vals-operator/0.4.1/templates/_helpers.tpl new file mode 100644 index 000000000..dcd31f04a --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "vals-operator.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "vals-operator.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "vals-operator.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "vals-operator.labels" -}} +helm.sh/chart: {{ include "vals-operator.chart" . }} +{{ include "vals-operator.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "vals-operator.selectorLabels" -}} +app.kubernetes.io/name: {{ include "vals-operator.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "vals-operator.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "vals-operator.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/vals-operator/vals-operator/0.4.1/templates/crds.yaml b/charts/vals-operator/vals-operator/0.4.1/templates/crds.yaml new file mode 100644 index 000000000..0b71ef8c6 --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/templates/crds.yaml @@ -0,0 +1,6 @@ +{{- if .Values.manageCrds -}} +{{- range $path, $bytes := .Files.Glob "crds/*.yaml" }} +{{ $.Files.Get $path }} +--- +{{- end }} +{{- end }} diff --git a/charts/vals-operator/vals-operator/0.4.1/templates/deployment.yaml b/charts/vals-operator/vals-operator/0.4.1/templates/deployment.yaml new file mode 100644 index 000000000..334c566e7 --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/templates/deployment.yaml @@ -0,0 +1,73 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "vals-operator.fullname" . }} + labels: + {{- include "vals-operator.labels" . | nindent 4 }} +spec: + replicas: 1 + selector: + matchLabels: + {{- include "vals-operator.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "vals-operator.selectorLabels" . | nindent 8 }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "vals-operator.serviceAccountName" . }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + {{- if .Values.args }} + args: + {{- toYaml .Values.args | nindent 12 }} + {{- end }} + {{- if .Values.environmentSecret }} + envFrom: + - secretRef: + name: "{{ .Values.environmentSecret }}" + {{- else }} + envFrom: + {{- toYaml .Values.secretEnv | nindent 12 }} + {{- end }} + {{- if .Values.env }} + env: + {{- toYaml .Values.env | nindent 12 }} + {{- end }} + resources: + {{- toYaml .Values.resources | nindent 12 }} + {{- if .Values.volumeMounts }} + volumeMounts: + {{- toYaml .Values.volumeMounts | nindent 12 }} + {{- end }} + ports: + - containerPort: {{ .Values.metricsPort | default 8080 }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- if .Values.volumes }} + volumes: + {{- toYaml .Values.volumes | nindent 8 }} + {{- end }} diff --git a/charts/vals-operator/vals-operator/0.4.1/templates/serviceaccount.yaml b/charts/vals-operator/vals-operator/0.4.1/templates/serviceaccount.yaml new file mode 100644 index 000000000..67f271063 --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/templates/serviceaccount.yaml @@ -0,0 +1,64 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: vals-operator + labels: + {{- include "vals-operator.labels" . | nindent 4 }} +rules: +- apiGroups: + - "" + resources: + - "secrets" + verbs: + - "get" + - "list" + - "watch" + - "update" + - "delete" + - "create" +- apiGroups: + - "" + resources: + - "events" + verbs: + - "create" + - "patch" +- apiGroups: + - "digitalis.io" + resources: + - "valssecrets" + verbs: + - "get" + - "list" + - "watch" + - "update" + - "delete" + - "create" +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: vals-operator + labels: + {{- include "vals-operator.labels" . | nindent 4 }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: vals-operator +subjects: + - kind: ServiceAccount + name: {{ include "vals-operator.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "vals-operator.serviceAccountName" . }} + labels: + {{- include "vals-operator.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/vals-operator/vals-operator/0.4.1/templates/servicemonitor.yaml b/charts/vals-operator/vals-operator/0.4.1/templates/servicemonitor.yaml new file mode 100644 index 000000000..4b6e11eeb --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/templates/servicemonitor.yaml @@ -0,0 +1,37 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ template "vals-operator.fullname" . }} + labels: + {{- if .Values.serviceMonitor.labels }} + {{ toYaml .Values.serviceMonitor.labels | nindent 4 }} + {{- else }} + app: {{ template "vals-operator.name" . }} + chart: {{ template "vals-operator.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + {{- end }} + {{- if .Values.serviceMonitor.namespace }} + namespace: {{ .Values.serviceMonitor.namespace }} + {{- end }} +spec: + endpoints: + - targetPort: "metrics" + {{- if .Values.serviceMonitor.interval }} + interval: {{ .Values.serviceMonitor.interval }} + {{- end }} + {{- if .Values.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }} + {{- end }} + path: /metrics + port: {{ .Values.metricsPort | default 8080 }} + tlsConfig: + insecureSkipVerify: true + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + {{- include "vals-operator.selectorLabels" . | nindent 6 }} +{{- end }} diff --git a/charts/vals-operator/vals-operator/0.4.1/values.yaml b/charts/vals-operator/vals-operator/0.4.1/values.yaml new file mode 100644 index 000000000..5bc2d97ad --- /dev/null +++ b/charts/vals-operator/vals-operator/0.4.1/values.yaml @@ -0,0 +1,106 @@ +replicaCount: 1 + +image: + repository: digitalisdocker/vals-operator + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +manageCrds: true + +# additional arguments to operator +args: [] + # -exclude-namespaces string + # Comma separated list of namespaces to ignore. + # -health-probe-bind-address string + # The address the probe endpoint binds to. (default ":8081") + # -kubeconfig string + # Paths to a kubeconfig. Only required if out-of-cluster. + # -leader-elect + # Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager. + # -metrics-bind-address string + # The address the metric endpoint binds to. (default ":8080") + # -reconcile-period duration + # How often the controller will re-queue vals-operator events. (default 5s) + # -record-changes + # Records every time a secret has been updated. You can view them with kubectl describe. It may also be disabled globally and enabled per secret via the annotation 'vals-operator.digitalis.io/record: "true"' (default true) + # -ttl duration + # How often to check backend for updates. (default 5m0s) + # -watch-namespaces string + # Comma separated list of namespaces that vals-operator will watch. + # -zap-devel + # Development Mode defaults(encoder=consoleEncoder,logLevel=Debug,stackTraceLevel=Warn). Production Mode defaults(encoder=jsonEncoder,logLevel=Info,stackTraceLevel=Error) (default true) + # -zap-encoder value + # Zap log encoding (one of 'json' or 'console') + # -zap-log-level value + # 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 + # -zap-stacktrace-level value + # Zap Level at and above which stacktraces are captured (one of 'info', 'error', 'panic'). + + +environmentSecret: "" + +# See https://github.com/variantdev/vals +# for information on setting up your backend environment. +env: [] + # - name: VAULT_SKIP_VERIFY + # value: "true" + +secretEnv: [] + # - secretRef: + # name: aws-creds + +volumes: [] + # - name: creds + # secret: + # secretName: gcs-credentials +volumeMounts: [] + # - name: creds + # mountPath: /secret + # readOnly: true + + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +metricsPort: 8080 +serviceMonitor: + # When set to true then use a ServiceMonitor to collect metrics + enabled: false + # Custom labels to use in the ServiceMonitor to be matched with a specific Prometheus + labels: {} + # Set the namespace the ServiceMonitor should be deployed to + # namespace: default + # Set how frequently Prometheus should scrape + # interval: 30s + # Set timeout for scrape + # scrapeTimeout: 10s + +resources: {} + +nodeSelector: {} + +tolerations: [] + +affinity: {} diff --git a/index.yaml b/index.yaml index e349ac8a9..8409e4729 100755 --- a/index.yaml +++ b/index.yaml @@ -3551,6 +3551,26 @@ entries: - assets/universal-crossplane/universal-crossplane-1.2.200100.tgz version: 1.2.200100 vals-operator: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Vals-Operator + catalog.cattle.io/release-name: vals-operator + apiVersion: v2 + appVersion: v0.5.0 + created: "2022-02-18T13:18:49.589482-05:00" + description: This helm chart installs the Digitalis Vals Operator to manage sync + secrets from supported backends into Kubernetes + digest: 48919f4c9e4bf65c84d300466758533ef63ef00023403ce4fcd5189606af7d6a + icon: https://digitalis.io/wp-content/uploads/2020/06/cropped-Digitalis-512x512-Blue_Digitalis-512x512-Blue-32x32.png + kubeVersion: '>= 1.19' + maintainers: + - email: info@digitalis.io + name: Digitalis.IO + name: vals-operator + type: application + urls: + - assets/vals-operator/vals-operator-0.4.1.tgz + version: 0.4.1 - apiVersion: v2 appVersion: v0.4.0 created: "2022-01-07T09:27:48.235665Z"