From fce486dc92bda5dad6c6429cbcb0710e8f612e74 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 28 Jul 2021 10:49:39 +0000 Subject: [PATCH] assets and chart dir for update of TVK v2.1.0 --- ...8s-triliovault-operator-2.1.0+upv2.1.0.tgz | Bin 0 -> 9154 bytes .../2.1.0+upv2.1.0/.helmignore | 23 + .../2.1.0+upv2.1.0/Chart.yaml | 17 + .../2.1.0+upv2.1.0/LICENSE | 1 + .../2.1.0+upv2.1.0/README.md | 41 + .../2.1.0+upv2.1.0/app-readme.md | 37 + ...iovault.trilio.io_triliovaultmanagers.yaml | 826 ++++++++++++++++++ .../2.1.0+upv2.1.0/templates/NOTES.txt | 3 + .../2.1.0+upv2.1.0/templates/_helpers.tpl | 33 + .../2.1.0+upv2.1.0/templates/clusterrole.yaml | 106 +++ .../templates/clusterrole_binding.yaml | 12 + .../2.1.0+upv2.1.0/templates/deployment.yaml | 110 +++ .../templates/mutating-webhook.yaml | 24 + .../templates/ns-validating-webhook.yaml | 30 + .../2.1.0+upv2.1.0/templates/secret.yaml | 6 + .../templates/serviceAccount.yaml | 10 + .../templates/validating-webhook.yaml | 24 + .../templates/webhook-service.yaml | 15 + .../2.1.0+upv2.1.0/values.yaml | 35 + index.yaml | 21 + 20 files changed, 1374 insertions(+) create mode 100644 assets/k8s-triliovault-operator/k8s-triliovault-operator-2.1.0+upv2.1.0.tgz create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/.helmignore create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/Chart.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/LICENSE create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/README.md create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/app-readme.md create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/crds/triliovault.trilio.io_triliovaultmanagers.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/NOTES.txt create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/_helpers.tpl create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole_binding.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/deployment.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/mutating-webhook.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/ns-validating-webhook.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/secret.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/serviceAccount.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/validating-webhook.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/webhook-service.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/values.yaml diff --git a/assets/k8s-triliovault-operator/k8s-triliovault-operator-2.1.0+upv2.1.0.tgz b/assets/k8s-triliovault-operator/k8s-triliovault-operator-2.1.0+upv2.1.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a73e87d4ede4a9354c9251a2e1537e5358da3e25 GIT binary patch literal 9154 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 literal 0 HcmV?d00001 diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/.helmignore b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/.helmignore new file mode 100644 index 000000000..be86b789d --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj +# Helm files +OWNERS diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/Chart.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/Chart.yaml new file mode 100644 index 000000000..6fa8528bb --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/Chart.yaml @@ -0,0 +1,17 @@ +annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: TrilioVault for Kubernetes Operator + catalog.cattle.io/release-name: k8s-triliovault-operator +apiVersion: v1 +appVersion: v2.1.0 +description: K8s-TrilioVault-Operator is an operator designed to manage the K8s-TrilioVault + Application Lifecycle. +home: https://github.com/trilioData/k8s-triliovault-operator +icon: https://www.trilio.io/wp-content/uploads/2021/01/Trilio-2020-logo-RGB-gray-green.png +maintainers: +- email: prafull.ladha@trilio.io + name: prafull11 +name: k8s-triliovault-operator +sources: +- https://github.com/trilioData/k8s-triliovault-operator +version: 2.1.0+upv2.1.0 diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/LICENSE b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/LICENSE new file mode 100644 index 000000000..76b559d3b --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/LICENSE @@ -0,0 +1 @@ +# Placeholder for the License if we decide to provide one diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/README.md b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/README.md new file mode 100644 index 000000000..600ce8dfd --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/README.md @@ -0,0 +1,41 @@ +# K8s-TrilioVault-Operator +This operator is to manage the lifecycle of TrilioVault Backup/Recovery solution. This operator install, updates and manage the TrilioVault application. + +## Introduction + +## Prerequisites + +- Kubernetes 1.13+ +- Alpha feature gates should be enabled +- PV provisioner support +- CSI driver should be installed + +## Installation + +To install the chart with the operator name `trilio`: + +```bash +# For helm version 2 +helm install --name trilio k8s-triliovault-operator + +# For helm version 3 +helm install --name-template trilio k8s-triliovault-operator +``` + +The command deploys the K8s-triliovault-operator with the default configuration. + +## Uninstall + +To uninstall/delete the chart `trilio` : + +```bash +# For helm version 2 +helm delete trilio --purge + +# For helm version 3 +helm uninstall trilio +``` + +## Configuration + +TODO: Add possible configuration in helm chart. diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/app-readme.md b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/app-readme.md new file mode 100644 index 000000000..65a2b3495 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/app-readme.md @@ -0,0 +1,37 @@ +# TrilioVault for Kubernetes + +[K8s-TrilioVault-Operator](https://trilio.io) is an operator designed to manage +the K8s-TrilioVault Application Lifecycle. + +This operator is to manage the lifecycle of TrilioVault Backup/Recovery solution. This operator install, updates and manage the TrilioVault application. + +Introduction: + +Prerequisites: + +Kubernetes 1.17+ +Alpha feature gates should be enabled +PV provisioner support +CSI driver should be installed + +Installation: + +To install the chart with the operator name trilio: + +helm install k8s-triliovault-operator triliovault-operator/k8s-triliovault-operator + +# For helm version 3 + +helm install triliovault-operator triliovault-operator/k8s-triliovault-operator + +The command deploys the Triliovault for Kubernetes Operator with the default configuration. + +Uninstall: + +To uninstall/delete the chart trilio : + +# For helm version 3 +helm uninstall k8s-triliovault-operator + +For more information around TVM manager installation, please follow below link: +https://docs.trilio.io/kubernetes/use-triliovault/installing-triliovault diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/crds/triliovault.trilio.io_triliovaultmanagers.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/crds/triliovault.trilio.io_triliovaultmanagers.yaml new file mode 100644 index 000000000..c1e40f2e7 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/crds/triliovault.trilio.io_triliovaultmanagers.yaml @@ -0,0 +1,826 @@ + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.3.0 + creationTimestamp: null + name: triliovaultmanagers.triliovault.trilio.io +spec: + additionalPrinterColumns: + - JSONPath: .spec.trilioVaultAppVersion + name: TrilioVault-Version + type: string + - JSONPath: .spec.applicationScope + name: Scope + type: string + - JSONPath: .status.conditions.type + name: Status + type: string + - JSONPath: .spec.restoreNamespaces + name: Restore-Namespaces + type: string + group: triliovault.trilio.io + names: + kind: TrilioVaultManager + listKind: TrilioVaultManagerList + plural: triliovaultmanagers + shortNames: + - tvm + singular: triliovaultmanager + scope: Namespaced + subresources: + status: {} + validation: + openAPIV3Schema: + description: TrilioVaultManager is the Schema for the triliovaultmanagers 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: TrilioVaultManagerSpec defines the desired state of TrilioVaultManager + properties: + affinity: + description: The scheduling constraints on application pods. + properties: + nodeAffinity: + description: Describes node affinity scheduling rules for the pod. + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes + that satisfy the affinity expressions specified by this field, + but it may choose a node that violates one or more of the + expressions. The node that is most preferred is the one with + the greatest sum of weights, i.e. for each node that meets + all of the scheduling requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating through + the elements of this field and adding "weight" to the sum + if the node matches the corresponding matchExpressions; the + node(s) with the highest sum are the most preferred. + items: + description: An empty preferred scheduling term matches all + objects with implicit weight 0 (i.e. it's a no-op). A null + preferred scheduling term matches no objects (i.e. is also + a no-op). + properties: + preference: + description: A node selector term, associated with the + corresponding weight. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are In, + NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array + must be non-empty. If the operator is Exists + or DoesNotExist, the values array must be + empty. If the operator is Gt or Lt, the values + array must have a single element, which will + be interpreted as an integer. This array is + replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are In, + NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array + must be non-empty. If the operator is Exists + or DoesNotExist, the values array must be + empty. If the operator is Gt or Lt, the values + array must have a single element, which will + be interpreted as an integer. This array is + replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + weight: + description: Weight associated with matching the corresponding + nodeSelectorTerm, in the range 1-100. + format: int32 + type: integer + required: + - preference + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this + field are not met at scheduling time, the pod will not be + scheduled onto the node. If the affinity requirements specified + by this field cease to be met at some point during pod execution + (e.g. due to an update), the system may or may not try to + eventually evict the pod from its node. + properties: + nodeSelectorTerms: + description: Required. A list of node selector terms. The + terms are ORed. + items: + description: A null or empty node selector term matches + no objects. The requirements of them are ANDed. The + TopologySelectorTerm type implements a subset of the + NodeSelectorTerm. + properties: + matchExpressions: + description: A list of node selector requirements + by node's labels. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are In, + NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array + must be non-empty. If the operator is Exists + or DoesNotExist, the values array must be + empty. If the operator is Gt or Lt, the values + array must have a single element, which will + be interpreted as an integer. This array is + replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchFields: + description: A list of node selector requirements + by node's fields. + items: + description: A node selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: The label key that the selector + applies to. + type: string + operator: + description: Represents a key's relationship + to a set of values. Valid operators are In, + NotIn, Exists, DoesNotExist. Gt, and Lt. + type: string + values: + description: An array of string values. If the + operator is In or NotIn, the values array + must be non-empty. If the operator is Exists + or DoesNotExist, the values array must be + empty. If the operator is Gt or Lt, the values + array must have a single element, which will + be interpreted as an integer. This array is + replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + type: object + type: array + required: + - nodeSelectorTerms + type: object + type: object + podAffinity: + description: Describes pod affinity scheduling rules (e.g. co-locate + this pod in the same node, zone, etc. as some other pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes + that satisfy the affinity expressions specified by this field, + but it may choose a node that violates one or more of the + expressions. The node that is most preferred is the one with + the greatest sum of weights, i.e. for each node that meets + all of the scheduling requirements (resource request, requiredDuringScheduling + affinity expressions, etc.), compute a sum by iterating through + the elements of this field and adding "weight" to the sum + if the node has pods which matches the corresponding podAffinityTerm; + the node(s) with the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement is + a selector that contains values, a key, and + an operator that relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. If + the operator is Exists or DoesNotExist, + the values array must be empty. This array + is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is "In", + and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey matches + that of any node on which any of the selected pods + is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding + podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the affinity requirements specified by this + field are not met at scheduling time, the pod will not be + scheduled onto the node. If the affinity requirements specified + by this field cease to be met at some point during pod execution + (e.g. due to a pod label update), the system may or may not + try to eventually evict the pod from its node. When there + are multiple elements, the lists of nodes corresponding to + each podAffinityTerm are intersected, i.e. all terms must + be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) that + this pod should be co-located (affinity) or not co-located + (anti-affinity) with, where co-located is defined as running + on a node whose value of the label with key + matches that of any node on which a pod of the set of pods + is running + properties: + labelSelector: + description: A label query over a set of resources, in + this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, + NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. + If the operator is In or NotIn, the values + array must be non-empty. If the operator is + Exists or DoesNotExist, the values array must + be empty. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. + A single {key,value} in the matchLabels map is equivalent + to an element of matchExpressions, whose key field + is "key", the operator is "In", and the values array + contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the + labelSelector applies to (matches against); null or + empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where + co-located is defined as running on a node whose value + of the label with key topologyKey matches that of any + node on which any of the selected pods is running. Empty + topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + podAntiAffinity: + description: Describes pod anti-affinity scheduling rules (e.g. + avoid putting this pod in the same node, zone, etc. as some other + pod(s)). + properties: + preferredDuringSchedulingIgnoredDuringExecution: + description: The scheduler will prefer to schedule pods to nodes + that satisfy the anti-affinity expressions specified by this + field, but it may choose a node that violates one or more + of the expressions. The node that is most preferred is the + one with the greatest sum of weights, i.e. for each node that + meets all of the scheduling requirements (resource request, + requiredDuringScheduling anti-affinity expressions, etc.), + compute a sum by iterating through the elements of this field + and adding "weight" to the sum if the node has pods which + matches the corresponding podAffinityTerm; the node(s) with + the highest sum are the most preferred. + items: + description: The weights of all of the matched WeightedPodAffinityTerm + fields are added per-node to find the most preferred node(s) + properties: + podAffinityTerm: + description: Required. A pod affinity term, associated + with the corresponding weight. + properties: + labelSelector: + description: A label query over a set of resources, + in this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label + selector requirements. The requirements are + ANDed. + items: + description: A label selector requirement is + a selector that contains values, a key, and + an operator that relates the key and values. + properties: + key: + description: key is the label key that the + selector applies to. + type: string + operator: + description: operator represents a key's + relationship to a set of values. Valid + operators are In, NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string + values. If the operator is In or NotIn, + the values array must be non-empty. If + the operator is Exists or DoesNotExist, + the values array must be empty. This array + is replaced during a strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} + pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, + whose key field is "key", the operator is "In", + and the values array contains only "value". + The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces + the labelSelector applies to (matches against); + null or empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods + matching the labelSelector in the specified namespaces, + where co-located is defined as running on a node + whose value of the label with key topologyKey matches + that of any node on which any of the selected pods + is running. Empty topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + weight: + description: weight associated with matching the corresponding + podAffinityTerm, in the range 1-100. + format: int32 + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + requiredDuringSchedulingIgnoredDuringExecution: + description: If the anti-affinity requirements specified by + this field are not met at scheduling time, the pod will not + be scheduled onto the node. If the anti-affinity requirements + specified by this field cease to be met at some point during + pod execution (e.g. due to a pod label update), the system + may or may not try to eventually evict the pod from its node. + When there are multiple elements, the lists of nodes corresponding + to each podAffinityTerm are intersected, i.e. all terms must + be satisfied. + items: + description: Defines a set of pods (namely those matching + the labelSelector relative to the given namespace(s)) that + this pod should be co-located (affinity) or not co-located + (anti-affinity) with, where co-located is defined as running + on a node whose value of the label with key + matches that of any node on which a pod of the set of pods + is running + properties: + labelSelector: + description: A label query over a set of resources, in + this case pods. + properties: + matchExpressions: + description: matchExpressions is a list of label selector + requirements. The requirements are ANDed. + items: + description: A label selector requirement is a selector + that contains values, a key, and an operator that + relates the key and values. + properties: + key: + description: key is the label key that the selector + applies to. + type: string + operator: + description: operator represents a key's relationship + to a set of values. Valid operators are In, + NotIn, Exists and DoesNotExist. + type: string + values: + description: values is an array of string values. + If the operator is In or NotIn, the values + array must be non-empty. If the operator is + Exists or DoesNotExist, the values array must + be empty. This array is replaced during a + strategic merge patch. + items: + type: string + type: array + required: + - key + - operator + type: object + type: array + matchLabels: + additionalProperties: + type: string + description: matchLabels is a map of {key,value} pairs. + A single {key,value} in the matchLabels map is equivalent + to an element of matchExpressions, whose key field + is "key", the operator is "In", and the values array + contains only "value". The requirements are ANDed. + type: object + type: object + namespaces: + description: namespaces specifies which namespaces the + labelSelector applies to (matches against); null or + empty list means "this pod's namespace" + items: + type: string + type: array + topologyKey: + description: This pod should be co-located (affinity) + or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where + co-located is defined as running on a node whose value + of the label with key topologyKey matches that of any + node on which any of the selected pods is running. Empty + topologyKey is not allowed. + type: string + required: + - topologyKey + type: object + type: array + type: object + type: object + applicationScope: + description: Scope for the application which will be installed in the + cluster NamespaceScope or ClusterScope + enum: + - Cluster + - Namespaced + type: string + dataJobLimits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: DataJobLimits are the resource limits for all the data + processing jobs. + type: object + deploymentLimits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: DeploymentLimits are the resource limits for all the deployments. + type: object + helmValues: + description: HelmValues holds all the additional fields in the values.yaml + of TVK helm chart. + type: object + helmVersion: + description: 'Deprecated: Helm Version' + properties: + tillerNamespace: + type: string + version: + enum: + - v3 + type: string + required: + - version + type: object + metadataJobLimits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: MetadataJobLimits are the resource limits for all the meta + processing jobs. + type: object + nodeSelector: + additionalProperties: + type: string + description: NodeSelector specifies a map of key-value pairs. For the + pod to be eligible to run on a node, the node must have each of the + indicated key-value pairs as labels. + type: object + resources: + description: 'Deprecated: Resources are the resource requirements for + the containers.' + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Limits describes the maximum amount of compute resources + allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: 'Requests describes the minimum amount of compute resources + required. If Requests is omitted for a container, it defaults + to Limits if that is explicitly specified, otherwise to an implementation-defined + value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' + type: object + type: object + restoreNamespaces: + description: 'Deprecated: RestoreNamespaces are the namespace where + you want to restore your applications. Restore Namespaces depends + on your k8s RBAC' + items: + type: string + type: array + tolerations: + description: The toleration of application against the specific taints + on the nodes + items: + description: The pod this Toleration is attached to tolerates any + taint that matches the triple using the matching + operator . + properties: + effect: + description: Effect indicates the taint effect to match. Empty + means match all taint effects. When specified, allowed values + are NoSchedule, PreferNoSchedule and NoExecute. + type: string + key: + description: Key is the taint key that the toleration applies + to. Empty means match all taint keys. If the key is empty, operator + must be Exists; this combination means to match all values and + all keys. + type: string + operator: + description: Operator represents a key's relationship to the value. + Valid operators are Exists and Equal. Defaults to Equal. Exists + is equivalent to wildcard for value, so that a pod can tolerate + all taints of a particular category. + type: string + tolerationSeconds: + description: TolerationSeconds represents the period of time the + toleration (which must be of effect NoExecute, otherwise this + field is ignored) tolerates the taint. By default, it is not + set, which means tolerate the taint forever (do not evict). + Zero and negative values will be treated as 0 (evict immediately) + by the system. + format: int64 + type: integer + value: + description: Value is the taint value the toleration matches to. + If the operator is Exists, the value should be empty, otherwise + just a regular string. + type: string + type: object + type: array + trilioVaultAppVersion: + description: Helm Chart version + type: string + required: + - applicationScope + type: object + status: + description: TrilioVaultManagerStatus defines the observed state of TrilioVaultManager + properties: + conditions: + properties: + lastTransitionTime: + format: date-time + nullable: true + type: string + message: + minLength: 0 + type: string + reason: + enum: + - InstallSuccessful + - UpdateSuccessful + - UninstallSuccessful + - InstallError + - UpdateError + - ReconcileError + - UninstallError + type: string + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + enum: + - Initialized + - Deployed + - Updated + - ReleaseFailed + - Irreconcilable + type: string + type: object + deployedRelease: + properties: + manifest: + type: string + name: + type: string + type: object + releaseVersion: + type: string + required: + - conditions + type: object + type: object + version: v1 + versions: + - name: v1 + served: true + storage: true +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/NOTES.txt b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/NOTES.txt new file mode 100644 index 000000000..19cd282d3 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/NOTES.txt @@ -0,0 +1,3 @@ +To verify that TrilioVault Operator has started, run: + + kubectl --namespace={{ .Release.Namespace }} get deployments -l "release={{ .Release.Name }}" \ No newline at end of file diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/_helpers.tpl b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/_helpers.tpl new file mode 100644 index 000000000..7cea76a18 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/_helpers.tpl @@ -0,0 +1,33 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "k8s-triliovault-operator.name" -}} +{{- default .Release.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). +*/}} +{{- define "k8s-triliovault-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 -}} + +{{/* +Return the proper TrilioVault Operator image name +*/}} +{{- define "k8s-triliovault-operator.image" -}} +{{- $registryName := .Values.image.registry -}} +{{- $repositoryName := .Values.image.repository -}} +{{- $tag := .Values.image.tag | toString -}} +{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} +{{- end -}} diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole.yaml new file mode 100644 index 000000000..c8c3852e6 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole.yaml @@ -0,0 +1,106 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{template "k8s-triliovault-operator.name" .}}-{{.Release.Namespace}}-manager-role +rules: + - apiGroups: + - '*' + resources: + - '*' + verbs: + - get + - list + - watch + - apiGroups: + - apiextensions.k8s.io + resources: + - customresourcedefinitions + verbs: + - create + - update + - delete + - patch + - apiGroups: + - "" + resources: + - serviceaccounts + - services + - services/finalizers + - secrets + - events + - pods + - endpoints + - configmaps + verbs: + - create + - update + - delete + - patch + - apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + - mutatingwebhookconfigurations + verbs: + - create + - update + - delete + - patch + - apiGroups: + - apps + resources: + - deployments + verbs: + - create + - update + - delete + - patch + - apiGroups: + - rbac.authorization.k8s.io + resources: + - clusterroles + - clusterrolebindings + - roles + - rolebindings + verbs: + - create + - update + - delete + - patch + - bind + - escalate + - apiGroups: + - triliovault.trilio.io + resources: + - '*' + verbs: + - '*' + - apiGroups: + - "" + resources: + - namespaces + verbs: + - update + - apiGroups: + - batch + resources: + - cronjobs + verbs: + - delete + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - create + - update + - patch + - delete + - apiGroups: + - networking.k8s.io + resources: + - ingresses + - ingressclasses + verbs: + - delete diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole_binding.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole_binding.yaml new file mode 100644 index 000000000..2646923b3 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/clusterrole_binding.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-{{ .Release.Namespace }}-manager-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "k8s-triliovault-operator.name" . }}-{{ .Release.Namespace }}-manager-role +subjects: +- kind: ServiceAccount + name: k8s-triliovault-operator + namespace: {{ .Release.Namespace }} diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/deployment.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/deployment.yaml new file mode 100644 index 000000000..ca17659f1 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/deployment.yaml @@ -0,0 +1,110 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "k8s-triliovault-operator.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: k8s-triliovault-operator + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + selector: + matchLabels: + app: {{ template "k8s-triliovault-operator.fullname" . }} + release: "{{ .Release.Name }}" + replicas: {{ .Values.replicaCount }} + template: + metadata: + labels: + app: {{ template "k8s-triliovault-operator.fullname" . }} + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" + spec: + containers: + - name: k8s-triliovault-operator + image: {{ .Values.registry }}/{{ index .Values "k8s-triliovault-operator" "repository" }}:{{ .Values.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + env: + - name: TVK_ENV + value: {{ .Values.tvkEnv }} + - name: TVK_HELM_REPO + value: {{ .Values.tvkHelmRepo }} + - name: REGISTRY + value: {{ .Values.registry }} + - name: ADMISSION_MUTATION_CONFIG + value: {{ template "k8s-triliovault-operator.name" . }}-mutating-webhook-configuration + - name: ADMISSION_VALIDATION_CONFIG + value: {{ template "k8s-triliovault-operator.name" . }}-validating-webhook-configuration + - name: NAMESPACE_VALIDATION_CONFIG + value: {{ template "k8s-triliovault-operator.name" . }}-ns-validating-webhook-configuration + volumeMounts: + {{- if .Values.tls.enable }} + - name: helm-tls-certs + mountPath: /root/.helm + readOnly: true + {{- if .Values.tls.verify }} + - name: helm-tls-ca + mountPath: /root/.helm/ca.crt + readOnly: true + {{- end }} + {{- end }} + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: webhook-certs + readOnly: true + resources: + limits: + cpu: 200m + memory: 512Mi + requests: + cpu: 10m + memory: 10Mi + initContainers: + - name: webhook-init + image: {{ .Values.registry }}/{{ index .Values "operator-webhook-init" "repository" }}:{{ .Values.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + env: + - name: TVK_ENV + value: {{ .Values.tvkEnv }} + - name: TVK_HELM_REPO + value: {{ .Values.tvkHelmRepo }} + - name: RELEASE_VERSION + value: {{ .Chart.Version }} + - name: ADMISSION_MUTATION_CONFIG + value: {{ template "k8s-triliovault-operator.name" . }}-mutating-webhook-configuration + - name: ADMISSION_VALIDATION_CONFIG + value: {{ template "k8s-triliovault-operator.name" . }}-validating-webhook-configuration + - name: NAMESPACE_VALIDATION_CONFIG + value: {{ template "k8s-triliovault-operator.name" . }}-ns-validating-webhook-configuration + - name: WEBHOOK_SERVICE + value: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-service + - name: WEBHOOK_NAMESPACE + value: {{ .Release.Namespace }} + - name: SECRET_NAME + value: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-certs + serviceAccountName: k8s-triliovault-operator + {{- if .Values.nodeSelector }} + nodeSelector: {{- .Values.nodeSelector | toYaml | nindent 8 }} + {{- end }} + {{- if .Values.affinity }} + affinity: + {{- toYaml .Values.affinity | nindent 8 }} + {{- end }} + volumes: + {{- if .Values.tls.enable }} + - name: helm-tls-certs + secret: + secretName: {{ .Values.tls.secretName }} + defaultMode: 0400 + {{- if .Values.tls.verify }} + - name: helm-tls-ca + configMap: + name: {{ template "helm-operator.fullname" . }}-helm-tls-ca-config + defaultMode: 0600 + {{- end }} + {{- end }} + - name: webhook-certs + secret: + defaultMode: 420 + secretName: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-certs diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/mutating-webhook.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/mutating-webhook.yaml new file mode 100644 index 000000000..6a17a0e1e --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/mutating-webhook.yaml @@ -0,0 +1,24 @@ +apiVersion: admissionregistration.k8s.io/v1beta1 +kind: MutatingWebhookConfiguration +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-mutating-webhook-configuration +webhooks: +- clientConfig: + caBundle: Cg== + service: + name: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-service + namespace: {{ .Release.Namespace }} + path: /mutate-triliovault-trilio-io-v1-triliovaultmanager + failurePolicy: Fail + name: v1-tvm-mutation.trilio.io + rules: + - apiGroups: + - triliovault.trilio.io + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - triliovaultmanagers + sideEffects: None diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/ns-validating-webhook.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/ns-validating-webhook.yaml new file mode 100644 index 000000000..a51d3f375 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/ns-validating-webhook.yaml @@ -0,0 +1,30 @@ +apiVersion: admissionregistration.k8s.io/v1beta1 +kind: ValidatingWebhookConfiguration +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-ns-validating-webhook-configuration +webhooks: +- clientConfig: + caBundle: Cg== + service: + name: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-service + namespace: {{ .Release.Namespace }} + path: /validate-core-v1-namespace + failurePolicy: Fail + name: v1-tvm-ns-validation.trilio.io + namespaceSelector: + matchExpressions: + - key: trilio-operator-label + operator: In + values: + - {{ .Release.Namespace }} + rules: + - apiGroups: + - "" + apiVersions: + - v1 + operations: + - DELETE + resources: + - namespaces + scope: '*' + sideEffects: None diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/secret.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/secret.yaml new file mode 100644 index 000000000..ea1faf3e1 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/secret.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-certs + namespace: {{ .Release.Namespace }} +type: Opaque diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/serviceAccount.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/serviceAccount.yaml new file mode 100644 index 000000000..4f164b120 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/serviceAccount.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: k8s-triliovault-operator + namespace: {{ .Release.Namespace }} + labels: + app: k8s-triliovault-operator + chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/validating-webhook.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/validating-webhook.yaml new file mode 100644 index 000000000..fe001ffe9 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/validating-webhook.yaml @@ -0,0 +1,24 @@ +apiVersion: admissionregistration.k8s.io/v1beta1 +kind: ValidatingWebhookConfiguration +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-validating-webhook-configuration +webhooks: +- clientConfig: + caBundle: Cg== + service: + name: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-service + namespace: {{ .Release.Namespace }} + path: /validate-triliovault-trilio-io-v1-triliovaultmanager + failurePolicy: Fail + name: v1-tvm-validation.trilio.io + rules: + - apiGroups: + - triliovault.trilio.io + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - triliovaultmanagers + sideEffects: None diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/webhook-service.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/webhook-service.yaml new file mode 100644 index 000000000..68f7a53c6 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/templates/webhook-service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-service + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "k8s-triliovault-operator.fullname" . }} + release: "{{ .Release.Name }}" +spec: + ports: + - port: 443 + targetPort: 9443 + selector: + app: {{ template "k8s-triliovault-operator.fullname" . }} + release: "{{ .Release.Name }}" \ No newline at end of file diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/values.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/values.yaml new file mode 100644 index 000000000..be2498769 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.1.0+upv2.1.0/values.yaml @@ -0,0 +1,35 @@ +## TrilioVault Operator +registry: "eu.gcr.io/amazing-chalice-243510" + +operator-webhook-init: + repository: operator-webhook-init + +k8s-triliovault-operator: + repository: k8s-triliovault-operator + +tag: "v2.1.0" + +tvkHelmRepo: "" + +affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/arch + operator: In + values: + - amd64 + +image: + pullPolicy: Always +tls: + secretName: "helm-client-certs" + verify: false + enable: false + keyFile: "tls.key" + certFile: "tls.crt" + caContent: "" + hostname: "" + +nameOverride: "" diff --git a/index.yaml b/index.yaml index 624ff0f41..e3561a41e 100755 --- a/index.yaml +++ b/index.yaml @@ -1192,6 +1192,27 @@ entries: - assets/instana-agent/instana-agent-1.0.2900.tgz version: 1.0.2900 k8s-triliovault-operator: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: TrilioVault for Kubernetes Operator + catalog.cattle.io/release-name: k8s-triliovault-operator + apiVersion: v1 + appVersion: v2.1.0 + created: "2021-07-28T10:45:14.173230357Z" + description: K8s-TrilioVault-Operator is an operator designed to manage the K8s-TrilioVault + Application Lifecycle. + digest: cdd4aab1da804fa365e1bc667827919ac99fe408ee6f6a79a4f1c5f523bc5009 + home: https://github.com/trilioData/k8s-triliovault-operator + icon: https://www.trilio.io/wp-content/uploads/2021/01/Trilio-2020-logo-RGB-gray-green.png + maintainers: + - email: prafull.ladha@trilio.io + name: prafull11 + name: k8s-triliovault-operator + sources: + - https://github.com/trilioData/k8s-triliovault-operator + urls: + - assets/k8s-triliovault-operator/k8s-triliovault-operator-2.1.0+upv2.1.0.tgz + version: 2.1.0+upv2.1.0 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: TrilioVault for Kubernetes Operator