From 0c3b9e44910f6b33bc6495610ac613cad5894998 Mon Sep 17 00:00:00 2001 From: Samuel Attwood <samuel.attwood@suse.com> Date: Tue, 9 Nov 2021 16:32:47 -0500 Subject: [PATCH 1/3] Adding assets --- .../k8s-triliovault-operator-2.5.300.tgz | Bin 0 -> 10018 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/k8s-triliovault-operator/k8s-triliovault-operator-2.5.300.tgz diff --git a/assets/k8s-triliovault-operator/k8s-triliovault-operator-2.5.300.tgz b/assets/k8s-triliovault-operator/k8s-triliovault-operator-2.5.300.tgz new file mode 100644 index 0000000000000000000000000000000000000000..88f653826c68e38903cae9f36304cea92af47482 GIT binary patch literal 10018 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 literal 0 HcmV?d00001 From 3af7b2314230b56237e61a29337aff9eb3cee547 Mon Sep 17 00:00:00 2001 From: Samuel Attwood <samuel.attwood@suse.com> Date: Tue, 9 Nov 2021 16:33:08 -0500 Subject: [PATCH 2/3] Adding charts --- .../2.5.300/.helmignore | 23 + .../2.5.300/Chart.yaml | 18 + .../k8s-triliovault-operator/2.5.300/LICENSE | 1 + .../2.5.300/README.md | 41 + .../2.5.300/app-readme.md | 37 + ...iovault.trilio.io_triliovaultmanagers.yaml | 883 ++++++++++++++++++ .../2.5.300/templates/NOTES.txt | 3 + .../2.5.300/templates/_helpers.tpl | 38 + .../2.5.300/templates/clusterrole.yaml | 111 +++ .../templates/clusterrole_binding.yaml | 17 + .../2.5.300/templates/deployment.yaml | 153 +++ .../2.5.300/templates/mutating-webhook.yaml | 29 + .../templates/ns-validating-webhook.yaml | 35 + .../2.5.300/templates/proxyConfig.yaml | 18 + .../2.5.300/templates/secret.yaml | 11 + .../2.5.300/templates/serviceAccount.yaml | 10 + .../2.5.300/templates/validating-webhook.yaml | 29 + .../2.5.300/templates/webhook-service.yaml | 19 + .../2.5.300/values.yaml | 61 ++ 19 files changed, 1537 insertions(+) create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/.helmignore create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/Chart.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/LICENSE create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/README.md create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/app-readme.md create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/crds/triliovault.trilio.io_triliovaultmanagers.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/NOTES.txt create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/_helpers.tpl create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/clusterrole.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/clusterrole_binding.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/deployment.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/mutating-webhook.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/ns-validating-webhook.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/proxyConfig.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/secret.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/serviceAccount.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/validating-webhook.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/webhook-service.yaml create mode 100644 charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/values.yaml diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/.helmignore b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/.helmignore new file mode 100644 index 000000000..be86b789d --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/.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.5.300/Chart.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/Chart.yaml new file mode 100644 index 000000000..0272e63cb --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/Chart.yaml @@ -0,0 +1,18 @@ +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: 2.5.3 +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 +kubeVersion: '>= 1.18' +maintainers: +- email: prafull.ladha@trilio.io + name: prafull11 +name: k8s-triliovault-operator +sources: +- https://github.com/trilioData/k8s-triliovault-operator +version: 2.5.300 diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/LICENSE b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/LICENSE new file mode 100644 index 000000000..76b559d3b --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/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.5.300/README.md b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/README.md new file mode 100644 index 000000000..600ce8dfd --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/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.5.300/app-readme.md b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/app-readme.md new file mode 100644 index 000000000..65a2b3495 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/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.5.300/crds/triliovault.trilio.io_triliovaultmanagers.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/crds/triliovault.trilio.io_triliovaultmanagers.yaml new file mode 100644 index 000000000..8f3ff82cc --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/crds/triliovault.trilio.io_triliovaultmanagers.yaml @@ -0,0 +1,883 @@ + +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.7.0 + creationTimestamp: null + name: triliovaultmanagers.triliovault.trilio.io + labels: + app.kubernetes.io/part-of: k8s-triliovault-operator +spec: + group: triliovault.trilio.io + names: + kind: TrilioVaultManager + listKind: TrilioVaultManagerList + plural: triliovaultmanagers + shortNames: + - tvm + singular: triliovaultmanager + scope: Namespaced + versions: + - 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 + name: v1 + schema: + 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 <topologyKey> + 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 <topologyKey> + 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 + componentConfiguration: + description: ComponentConfiguration holds all the field related to + components. + properties: + admission-webhook: + description: AdmissionWebhook holds all configuration keys related + to admission-webhook + type: object + x-kubernetes-preserve-unknown-fields: true + control-plane: + description: ControlPlane holds all configuration keys related + to control-plane + type: object + x-kubernetes-preserve-unknown-fields: true + exporter: + description: Exporter holds all configuration keys related to + exporter + type: object + x-kubernetes-preserve-unknown-fields: true + ingress-controller: + description: IngressController holds all configuration keys related + to ingress-controller + type: object + x-kubernetes-preserve-unknown-fields: true + web: + description: Web holds all configuration keys related to web + type: object + x-kubernetes-preserve-unknown-fields: true + web-backend: + description: WebBackend holds all configuration keys related to + web-backend + type: object + x-kubernetes-preserve-unknown-fields: true + type: object + 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 + x-kubernetes-preserve-unknown-fields: true + 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 <key,value,effect> using the matching + operator <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 + served: true + storage: true + subresources: + status: {} +status: + acceptedNames: + kind: "" + plural: "" + conditions: [] + storedVersions: [] diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/NOTES.txt b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/NOTES.txt new file mode 100644 index 000000000..19cd282d3 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/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.5.300/templates/_helpers.tpl b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/_helpers.tpl new file mode 100644 index 000000000..95ede956e --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/_helpers.tpl @@ -0,0 +1,38 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "k8s-triliovault-operator.name" -}} +{{- default .Release.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- define "k8s-triliovault-operator.appName" -}} +{{- printf "%s" .Chart.Name -}} +{{- 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.5.300/templates/clusterrole.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/clusterrole.yaml new file mode 100644 index 000000000..46fe0b522 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/clusterrole.yaml @@ -0,0 +1,111 @@ +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{template "k8s-triliovault-operator.name" .}}-{{.Release.Namespace}}-manager-role + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{template "k8s-triliovault-operator.appName" .}}-manager-role + app.kubernetes.io/managed-by: {{ .Release.Service }} +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.5.300/templates/clusterrole_binding.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/clusterrole_binding.yaml new file mode 100644 index 000000000..49d5655f6 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/clusterrole_binding.yaml @@ -0,0 +1,17 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-{{ .Release.Namespace }}-manager-rolebinding + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-manager-rolebinding + app.kubernetes.io/managed-by: {{ .Release.Service }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "k8s-triliovault-operator.name" . }}-{{ .Release.Namespace }}-manager-role +subjects: +- kind: ServiceAccount + name: {{ template "k8s-triliovault-operator.fullname" . }}-service-account + namespace: {{ .Release.Namespace }} diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/deployment.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/deployment.yaml new file mode 100644 index 000000000..1b785b602 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/deployment.yaml @@ -0,0 +1,153 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ template "k8s-triliovault-operator.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ template "k8s-triliovault-operator.fullname" . }} + release: "{{ .Release.Name }}" + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/managed-by: {{ .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" . }} + release: "{{ .Release.Name }}" + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/managed-by: {{ .Release.Service }} + spec: + hostNetwork: {{ .Values.podSpec.hostNetwork }} + hostIPC: {{ .Values.podSpec.hostIPC }} + hostPID: {{ .Values.podSpec.hostPID }} + {{- if .Values.securityContext }} + securityContext: + {{- toYaml .Values.podSpec.securityContext | nindent 8 }} + {{- end }} + containers: + - name: k8s-triliovault-operator + image: {{ .Values.registry }}/{{ index .Values "k8s-triliovault-operator" "repository" }}:{{ .Values.tag }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + {{- if .Values.proxySettings.PROXY_ENABLED }} + envFrom: + - secretRef: + name: {{ template "k8s-triliovault-operator.fullname" . }}-proxy + {{- end }} + env: + {{- if .Values.proxySettings.PROXY_ENABLED }} + - name: PROXY_SETTINGS_SECRET + value: {{ template "k8s-triliovault-operator.fullname" . }}-proxy + {{- end }} + {{- if .Values.tvkEnv }} + - name: TVK_ENV + value: {{ .Values.tvkEnv }} + {{- end}} + {{- if .Values.tvkHelmRepo }} + - name: TVK_HELM_REPO + value: {{ .Values.tvkHelmRepo }} + {{- end }} + - name: INSTALL_NAMESPACE + value: {{ .Release.Namespace }} + - 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 + {{- if .Values.securityContext }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + {{- end }} + 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 }} + {{- if .Values.securityContext }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + {{- end }} + {{- if .Values.proxySettings.PROXY_ENABLED }} + envFrom: + - secretRef: + name: {{ template "k8s-triliovault-operator.fullname" . }}-proxy + {{- end }} + env: + {{- if .Values.proxySettings.PROXY_ENABLED }} + - name: PROXY_SETTINGS_SECRET + value: {{ template "k8s-triliovault-operator.fullname" . }}-proxy + {{- end }} + - name: TVK_ENV + value: {{ .Values.tvkEnv }} + - name: TVK_HELM_REPO + value: {{ .Values.tvkHelmRepo }} + - name: RELEASE_VERSION + value: {{ .Chart.AppVersion }} + - 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: {{ template "k8s-triliovault-operator.fullname" . }}-service-account + {{- 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.5.300/templates/mutating-webhook.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/mutating-webhook.yaml new file mode 100644 index 000000000..35fa40026 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/mutating-webhook.yaml @@ -0,0 +1,29 @@ +apiVersion: admissionregistration.k8s.io/v1beta1 +kind: MutatingWebhookConfiguration +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-mutating-webhook-configuration + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-mutating-webhook-configuration + app.kubernetes.io/managed-by: {{ .Release.Service }} +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.5.300/templates/ns-validating-webhook.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/ns-validating-webhook.yaml new file mode 100644 index 000000000..1e065395a --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/ns-validating-webhook.yaml @@ -0,0 +1,35 @@ +apiVersion: admissionregistration.k8s.io/v1beta1 +kind: ValidatingWebhookConfiguration +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-ns-validating-webhook-configuration + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-ns-validating-webhook-configuration + app.kubernetes.io/managed-by: {{ .Release.Service }} +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.5.300/templates/proxyConfig.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/proxyConfig.yaml new file mode 100644 index 000000000..c0364891a --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/proxyConfig.yaml @@ -0,0 +1,18 @@ +{{- if .Values.proxySettings.PROXY_ENABLED }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "k8s-triliovault-operator.fullname" . }}-proxy + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-proxy + app.kubernetes.io/managed-by: {{ .Release.Service }} +data: + {{- range $key, $val := .Values.proxySettings }} + {{ $val = $val| toString | b64enc }} + {{ $key }}: {{ $val }} + {{- end }} +type: Opaque +{{- end }} diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/secret.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/secret.yaml new file mode 100644 index 000000000..782140c5a --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/secret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ template "k8s-triliovault-operator.fullname" . }}-webhook-certs + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-webhook-certs + app.kubernetes.io/managed-by: {{ .Release.Service }} +type: Opaque diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/serviceAccount.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/serviceAccount.yaml new file mode 100644 index 000000000..4c51e5fa4 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/serviceAccount.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "k8s-triliovault-operator.fullname" . }}-service-account + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-service-account + app.kubernetes.io/managed-by: {{ .Release.Service }} diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/validating-webhook.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/validating-webhook.yaml new file mode 100644 index 000000000..786ed338e --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/validating-webhook.yaml @@ -0,0 +1,29 @@ +apiVersion: admissionregistration.k8s.io/v1beta1 +kind: ValidatingWebhookConfiguration +metadata: + name: {{ template "k8s-triliovault-operator.name" . }}-validating-webhook-configuration + labels: + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-validating-webhook-configuration + app.kubernetes.io/managed-by: {{ .Release.Service }} +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.5.300/templates/webhook-service.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/webhook-service.yaml new file mode 100644 index 000000000..bed6993c7 --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/templates/webhook-service.yaml @@ -0,0 +1,19 @@ +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 }}" + app.kubernetes.io/part-of: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/name: {{ template "k8s-triliovault-operator.appName" . }} + app.kubernetes.io/instance: {{ template "k8s-triliovault-operator.appName" . }}-webhook-service + app.kubernetes.io/managed-by: {{ .Release.Service }} +spec: + ports: + - port: 443 + targetPort: 9443 + selector: + app: {{ template "k8s-triliovault-operator.fullname" . }} + release: "{{ .Release.Name }}" diff --git a/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/values.yaml b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/values.yaml new file mode 100644 index 000000000..b60ccce0e --- /dev/null +++ b/charts/k8s-triliovault-operator/k8s-triliovault-operator/2.5.300/values.yaml @@ -0,0 +1,61 @@ +## TrilioVault Operator +registry: "eu.gcr.io/amazing-chalice-243510" + +operator-webhook-init: + repository: operator-webhook-init + +k8s-triliovault-operator: + repository: k8s-triliovault-operator + +tag: "2.5.3" + +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: "" + +replicaCount: 1 + +proxySettings: + PROXY_ENABLED: false + NO_PROXY: "" + HTTP_PROXY: "" + HTTPS_PROXY: "" + +podSpec: + hostIPC: false + hostNetwork: false + hostPID: false + securityContext: + runAsNonRoot: true + runAsUser: 1001 + +securityContext: + allowPrivilegeEscalation: false + privileged: false + readOnlyRootFilesystem: false + runAsNonRoot: true + runAsUser: 1001 + capabilities: + drop: + - ALL From 996d3d109b0b2c3bd2ccff04489fa0e9e5db549d Mon Sep 17 00:00:00 2001 From: Samuel Attwood <samuel.attwood@suse.com> Date: Tue, 9 Nov 2021 16:33:26 -0500 Subject: [PATCH 3/3] Adding index.yaml --- index.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/index.yaml b/index.yaml index 50b736644..d00ad3f85 100755 --- a/index.yaml +++ b/index.yaml @@ -1318,6 +1318,28 @@ 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: 2.5.3 + created: "2021-11-02T08:26:46.549319663Z" + description: K8s-TrilioVault-Operator is an operator designed to manage the K8s-TrilioVault + Application Lifecycle. + digest: 4baeba2c432b8c8bdf1f85cd8b97ad76325f402fc806b56a9638d42b801fe71d + 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 + kubeVersion: '>= 1.18' + 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.5.300.tgz + version: 2.5.300 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: TrilioVault for Kubernetes Operator