diff --git a/charts/cilium/.helmignore b/charts/cilium/.helmignore
deleted file mode 100644
index 0e8a0eb..0000000
--- a/charts/cilium/.helmignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# 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
-*.orig
-*~
-# Various IDEs
-.project
-.idea/
-*.tmproj
-.vscode/
diff --git a/charts/cilium/Chart.yaml b/charts/cilium/Chart.yaml
deleted file mode 100644
index 2296ab4..0000000
--- a/charts/cilium/Chart.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-annotations:
-  artifacthub.io/crds: |
-    - kind: CiliumNetworkPolicy
-      version: v2
-      name: ciliumnetworkpolicy
-      displayName: Cilium Network Policy
-      description: |
-        Cilium Network Policies provide additional functionality beyond what
-        is provided by standard Kubernetes NetworkPolicy such as the ability
-        to allow traffic based on FQDNs, or to filter at Layer 7.
-    - kind: CiliumClusterwideNetworkPolicy
-      version: v2
-      name: ciliumclusterwidenetworkpolicy
-      displayName: Cilium Clusterwide Network Policy
-      description: |
-        Cilium Clusterwide Network Policies support configuring network traffic
-        policiies across the entire cluster, including applying node firewalls.
-    - kind: CiliumExternalWorkload
-      version: v2
-      name: ciliumnetworkpolicy
-      displayName: Cilium External Workload
-      description: |
-        Cilium External Workload supports configuring the ability for external
-        non-Kubernetes workloads to join the cluster.
-    - kind: CiliumLocalRedirectPolicy
-      version: v2
-      name: ciliumlocalredirectpolicy
-      displayName: Cilium Local Redirect Policy
-      description: |
-        Cilium Local Redirect Policy allows local redirects to be configured
-        within a node to support use cases like Node-Local DNS or KIAM.
-    - kind: CiliumNode
-      version: v2
-      name: ciliumnode
-      displayName: Cilium Node
-      description: |
-        Cilium Node represents a node managed by Cilium. It contains a
-        specification to control various node specific configuration aspects
-        and a status section to represent the status of the node.
-    - kind: CiliumIdentity
-      version: v2
-      name: ciliumidentity
-      displayName: Cilium Identity
-      description: |
-        Cilium Identity allows introspection into security identities that
-        Cilium allocates which identify sets of labels that are assigned to
-        individual endpoints in the cluster.
-    - kind: CiliumEndpoint
-      version: v2
-      name: ciliumendpoint
-      displayName: Cilium Endpoint
-      description: |
-        Cilium Endpoint represents the status of individual pods or nodes in
-        the cluster which are managed by Cilium, including enforcement status,
-        IP addressing and whether the networking is succesfully operational.
-apiVersion: v2
-appVersion: 1.10.7
-description: eBPF-based Networking, Security, and Observability
-home: https://cilium.io/
-icon: https://cdn.jsdelivr.net/gh/cilium/cilium@v1.10.7/Documentation/images/logo-solo.svg
-keywords:
-- BPF
-- eBPF
-- Kubernetes
-- Networking
-- Security
-- Observability
-- Troubleshooting
-kubeVersion: '>= 1.16.0-0'
-name: cilium
-sources:
-- https://github.com/cilium/cilium
-version: 1.10.7
diff --git a/charts/cilium/LICENSE b/charts/cilium/LICENSE
deleted file mode 100644
index a2e486a..0000000
--- a/charts/cilium/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "{}"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright {yyyy} Authors of Cilium
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-
diff --git a/charts/cilium/README.md b/charts/cilium/README.md
deleted file mode 100644
index 578b53e..0000000
--- a/charts/cilium/README.md
+++ /dev/null
@@ -1,365 +0,0 @@
-# cilium
-
-![Version: 1.10.7](https://img.shields.io/badge/Version-1.10.7-informational?style=flat-square) ![AppVersion: 1.10.7](https://img.shields.io/badge/AppVersion-1.10.7-informational?style=flat-square)
-
-Cilium is open source software for providing and transparently securing
-network connectivity and loadbalancing between application workloads such as
-application containers or processes. Cilium operates at Layer 3/4 to provide
-traditional networking and security services as well as Layer 7 to protect and
-secure use of modern application protocols such as HTTP, gRPC and Kafka.
-
-A new Linux kernel technology called eBPF is at the foundation of Cilium.
-It supports dynamic insertion of eBPF bytecode into the Linux kernel at various
-integration points such as: network IO, application sockets, and tracepoints
-to implement security, networking and visibility logic. eBPF is highly
-efficient and flexible.
-
-![Cilium feature overview](https://raw.githubusercontent.com/cilium/cilium/master/Documentation/images/cilium_overview.png)
-
-## Prerequisites
-
-* Kubernetes: `>= 1.16.0-0`
-* Helm: `>= 3.0`
-
-## Getting Started
-
-Try Cilium on any Kubernetes distribution in under 15 minutes:
-
-| Minikube | Self-Managed K8s | Amazon EKS | Google GKE | Microsoft AKS |
-|:-:|:-:|:-:|:-:|:-:|
-| [![Minikube](https://raw.githubusercontent.com/cilium/charts/master/images/minikube.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Self-Managed Kubernetes](https://raw.githubusercontent.com/cilium/charts/master/images/k8s.png)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Amazon EKS](https://raw.githubusercontent.com/cilium/charts/master/images/aws.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Google GKE](https://raw.githubusercontent.com/cilium/charts/master/images/google-cloud.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Microsoft AKS](https://raw.githubusercontent.com/cilium/charts/master/images/azure.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) |
-
-Or, for a quick install with the default configuration:
-
-```
-$ helm repo add cilium https://helm.cilium.io/
-$ helm install cilium cilium/cilium --namespace=kube-system
-```
-
-After Cilium is installed, you can explore the features that Cilium has to
-offer from the [Getting Started Guides page](https://docs.cilium.io/en/latest/gettingstarted/).
-
-## Source Code
-
-* <https://github.com/cilium/cilium>
-
-## Getting Help
-
-The best way to get help if you get stuck is to ask a question on the
-[Cilium Slack channel](https://cilium.herokuapp.com/). With Cilium
-contributors across the globe, there is almost always someone available to help.
-
-## Values
-
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| affinity | object | `{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"kubernetes.io/os","operator":"In","values":["linux"]}]},{"matchExpressions":[{"key":"beta.kubernetes.io/os","operator":"In","values":["linux"]}]}]}},"podAntiAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":[{"labelSelector":{"matchExpressions":[{"key":"k8s-app","operator":"In","values":["cilium"]}]},"topologyKey":"kubernetes.io/hostname"}]}}` | Pod affinity for cilium-agent. |
-| agent | bool | `true` | Install the cilium agent resources. |
-| alibabacloud.enabled | bool | `false` | Enable AlibabaCloud ENI integration |
-| autoDirectNodeRoutes | bool | `false` | Enable installation of PodCIDR routes between worker nodes if worker nodes share a common L2 network segment. |
-| azure.enabled | bool | `false` | Enable Azure integration |
-| bandwidthManager | bool | `false` | Optimize TCP and UDP workloads and enable rate-limiting traffic from individual Pods with EDT (Earliest Departure Time) through the "kubernetes.io/egress-bandwidth" Pod annotation. |
-| bgp | object | `{"announce":{"loadbalancerIP":false},"enabled":false}` | Configure BGP |
-| bgp.announce.loadbalancerIP | bool | `false` | Enable allocation and announcement of service LoadBalancer IPs |
-| bgp.enabled | bool | `false` | Enable BGP support inside Cilium; embeds a new ConfigMap for BGP inside cilium-agent and cilium-operator |
-| bpf.clockProbe | bool | `false` | Enable BPF clock source probing for more efficient tick retrieval. |
-| bpf.lbExternalClusterIP | bool | `false` | Allow cluster external access to ClusterIP services. |
-| bpf.lbMapMax | int | `65536` | Configure the maximum number of service entries in the load balancer maps. |
-| bpf.monitorAggregation | string | `"medium"` | Configure the level of aggregation for monitor notifications. Valid options are none, low, medium, maximum. |
-| bpf.monitorFlags | string | `"all"` | Configure which TCP flags trigger notifications when seen for the first time in a connection. |
-| bpf.monitorInterval | string | `"5s"` | Configure the typical time between monitor notifications for active connections. |
-| bpf.policyMapMax | int | `16384` | Configure the maximum number of entries in endpoint policy map (per endpoint). |
-| bpf.preallocateMaps | bool | `false` | Enables pre-allocation of eBPF map values. This increases memory usage but can reduce latency. |
-| certgen | object | `{"image":{"pullPolicy":"IfNotPresent","repository":"quay.io/cilium/certgen","tag":"v0.1.5"},"podLabels":{},"ttlSecondsAfterFinished":1800}` | Configure certificate generation for Hubble integration. If hubble.tls.auto.method=cronJob, these values are used for the Kubernetes CronJob which will be scheduled regularly to (re)generate any certificates not provided manually. |
-| certgen.podLabels | object | `{}` | Labels to be added to hubble-certgen pods |
-| certgen.ttlSecondsAfterFinished | int | `1800` | Seconds after which the completed job pod will be deleted |
-| cgroup | object | `{"autoMount":{"enabled":true},"hostRoot":"/run/cilium/cgroupv2"}` | Configure cgroup related configuration |
-| cgroup.autoMount.enabled | bool | `true` | Enable auto mount of cgroup2 filesystem. When `autoMount` is enabled, cgroup2 filesystem is mounted at `cgroup.hostRoot` path on the underlying host and inside the cilium agent pod. If users disable `autoMount`, it's expected that users have mounted cgroup2 filesystem at the specified `cgroup.hostRoot` volume, and then the volume will be mounted inside the cilium agent pod at the same path. |
-| cgroup.hostRoot | string | `"/run/cilium/cgroupv2"` | Configure cgroup root where cgroup2 filesystem is mounted on the host (see also: `cgroup.autoMount`) |
-| cleanBpfState | bool | `false` | Clean all eBPF datapath state from the initContainer of the cilium-agent DaemonSet. WARNING: Use with care! |
-| cleanState | bool | `false` | Clean all local Cilium state from the initContainer of the cilium-agent DaemonSet. Implies cleanBpfState: true. WARNING: Use with care! |
-| cluster.id | int | `nil` | Unique ID of the cluster. Must be unique across all connected clusters and in the range of 1 to 255. Only required for Cluster Mesh. |
-| cluster.name | string | `"default"` | Name of the cluster. Only required for Cluster Mesh. |
-| clustermesh.apiserver.etcd.image | object | `{"pullPolicy":"IfNotPresent","repository":"quay.io/coreos/etcd","tag":"v3.4.13"}` | Clustermesh API server etcd image. |
-| clustermesh.apiserver.image | object | `{"digest":"sha256:9afb0a15afffdf84812c8174df9de86e35239fb87a6ffd9539877a9e643d8132","pullPolicy":"IfNotPresent","repository":"quay.io/cilium/clustermesh-apiserver","tag":"v1.10.7","useDigest":true}` | Clustermesh API server image. |
-| clustermesh.apiserver.nodeSelector | object | `{}` | Node labels for pod assignment ref: https://kubernetes.io/docs/user-guide/node-selection/ |
-| clustermesh.apiserver.podAnnotations | object | `{}` | Annotations to be added to clustermesh-apiserver pods |
-| clustermesh.apiserver.podLabels | object | `{}` | Labels to be added to clustermesh-apiserver pods |
-| clustermesh.apiserver.replicas | int | `1` | Number of replicas run for the clustermesh-apiserver deployment. |
-| clustermesh.apiserver.resources | object | `{}` | Resource requests and limits for the clustermesh-apiserver container of the clustermesh-apiserver deployment, such as     resources:       limits:         cpu: 1000m         memory: 1024M       requests:         cpu: 100m         memory: 64Mi |
-| clustermesh.apiserver.service.annotations | object | `{}` | Annotations for the clustermesh-apiserver For GKE LoadBalancer, use annotation cloud.google.com/load-balancer-type: "Internal" For EKS LoadBalancer, use annotation service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0 |
-| clustermesh.apiserver.service.nodePort | int | `32379` | Optional port to use as the node port for apiserver access. |
-| clustermesh.apiserver.service.type | string | `"NodePort"` | The type of service used for apiserver access. |
-| clustermesh.apiserver.tls.admin | object | `{"cert":"","key":""}` | base64 encoded PEM values for the clustermesh-apiserver admin certificate and private key. Used if 'auto' is not enabled. |
-| clustermesh.apiserver.tls.auto | object | `{"certValidityDuration":1095,"enabled":true,"method":"helm"}` | Configure automatic TLS certificates generation. A Kubernetes CronJob is used the generate any certificates not provided by the user at installation time. |
-| clustermesh.apiserver.tls.auto.certValidityDuration | int | `1095` | Generated certificates validity duration in days. |
-| clustermesh.apiserver.tls.auto.enabled | bool | `true` | When set to true, automatically generate a CA and certificates to enable mTLS between clustermesh-apiserver and external workload instances. If set to false, the certs to be provided by setting appropriate values below. |
-| clustermesh.apiserver.tls.ca | object | `{"cert":"","key":""}` | base64 encoded PEM values for the ExternalWorkload CA certificate and private key. |
-| clustermesh.apiserver.tls.ca.cert | string | `""` | Optional CA cert. If it is provided, it will be used by the 'cronJob' method to generate all other certificates. Otherwise, an ephemeral CA is generated. |
-| clustermesh.apiserver.tls.ca.key | string | `""` | Optional CA private key. If it is provided, it will be used by the 'cronJob' method to generate all other certificates. Otherwise, an ephemeral CA is generated. |
-| clustermesh.apiserver.tls.client | object | `{"cert":"","key":""}` | base64 encoded PEM values for the clustermesh-apiserver client certificate and private key. Used if 'auto' is not enabled. |
-| clustermesh.apiserver.tls.remote | object | `{"cert":"","key":""}` | base64 encoded PEM values for the clustermesh-apiserver remote cluster certificate and private key. Used if 'auto' is not enabled. |
-| clustermesh.apiserver.tls.server | object | `{"cert":"","key":""}` | base64 encoded PEM values for the clustermesh-apiserver server certificate and private key. Used if 'auto' is not enabled. |
-| clustermesh.apiserver.tolerations | list | `[]` | Node tolerations for pod assignment on nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| clustermesh.apiserver.updateStrategy | object | `{"rollingUpdate":{"maxUnavailable":1},"type":"RollingUpdate"}` | clustermesh-apiserver update strategy |
-| clustermesh.useAPIServer | bool | `false` | Deploy clustermesh-apiserver for clustermesh |
-| cni.binPath | string | `"/opt/cni/bin"` | Configure the path to the CNI binary directory on the host. |
-| cni.chainingMode | string | `"none"` | Configure chaining on top of other CNI plugins. Possible values:  - none  - generic-veth  - aws-cni  - portmap |
-| cni.confFileMountPath | string | `"/tmp/cni-configuration"` | Configure the path to where to mount the ConfigMap inside the agent pod. |
-| cni.confPath | string | `"/etc/cni/net.d"` | Configure the path to the CNI configuration directory on the host. |
-| cni.configMapKey | string | `"cni-config"` | Configure the key in the CNI ConfigMap to read the contents of the CNI configuration from. |
-| cni.customConf | bool | `false` | Skip writing of the CNI configuration. This can be used if writing of the CNI configuration is performed by external automation. |
-| cni.exclusive | bool | `true` | Make Cilium take ownership over the `/etc/cni/net.d` directory on the node, renaming all non-Cilium CNI configurations to `*.cilium_bak`. This ensures no Pods can be scheduled using other CNI plugins during Cilium agent downtime. |
-| cni.hostConfDirMountPath | string | `"/host/etc/cni/net.d"` | Configure the path to where the CNI configuration directory is mounted inside the agent pod. |
-| cni.install | bool | `true` | Install the CNI configuration and binary files into the filesystem. |
-| containerRuntime | object | `{"integration":"none"}` | Configure container runtime specific integration. |
-| containerRuntime.integration | string | `"none"` | Enables specific integrations for container runtimes. Supported values: - containerd - crio - docker - none - auto (automatically detect the container runtime) |
-| customCalls | object | `{"enabled":false}` | Tail call hooks for custom eBPF programs. |
-| customCalls.enabled | bool | `false` | Enable tail call hooks for custom eBPF programs. |
-| daemon.runPath | string | `"/var/run/cilium"` | Configure where Cilium runtime state should be stored. |
-| datapathMode | string | `"veth"` | Configure which datapath mode should be used for configuring container connectivity. Valid options are "veth" or "ipvlan". |
-| debug.enabled | bool | `false` | Enable debug logging |
-| egressGateway | object | `{"enabled":false}` | Enables egress gateway (beta) to redirect and SNAT the traffic that leaves the cluster. |
-| enableCnpStatusUpdates | bool | `false` | Whether to enable CNP status updates. |
-| enableCriticalPriorityClass | bool | `true` | Explicitly enable or disable priority class. .Capabilities.KubeVersion is unsettable in `helm template` calls, it depends on k8s libraries version that Helm was compiled against. This option allows to explicitly disable setting the priority class, which is useful for rendering charts for gke clusters in advance. |
-| enableIPv4Masquerade | bool | `true` | Enables masquerading of IPv4 traffic leaving the node from endpoints. |
-| enableIPv6Masquerade | bool | `true` | Enables masquerading of IPv6 traffic leaving the node from endpoints. |
-| enableK8sEventHandover | bool | `false` | Configures the use of the KVStore to optimize Kubernetes event handling by mirroring it into the KVstore for reduced overhead in large clusters. |
-| enableXTSocketFallback | bool | `true` | Enables the fallback compatibility solution for when the xt_socket kernel module is missing and it is needed for the datapath L7 redirection to work properly. See documentation for details on when this can be disabled: http://docs.cilium.io/en/stable/install/system_requirements/#admin-kernel-version. |
-| encryption.enabled | bool | `false` | Enable transparent network encryption. |
-| encryption.interface | string | `""` | Deprecated in favor of encryption.ipsec.interface. The interface to use for encrypted traffic. This option is only effective when encryption.type is set to ipsec. |
-| encryption.ipsec.interface | string | `""` | The interface to use for encrypted traffic. |
-| encryption.ipsec.keyFile | string | `""` | Name of the key file inside the Kubernetes secret configured via secretName. |
-| encryption.ipsec.mountPath | string | `""` | Path to mount the secret inside the Cilium pod. |
-| encryption.ipsec.secretName | string | `""` | Name of the Kubernetes secret containing the encryption keys. |
-| encryption.keyFile | string | `"keys"` | Deprecated in favor of encryption.ipsec.keyFile. Name of the key file inside the Kubernetes secret configured via secretName. This option is only effective when encryption.type is set to ipsec. |
-| encryption.mountPath | string | `"/etc/ipsec"` | Deprecated in favor of encryption.ipsec.mountPath. Path to mount the secret inside the Cilium pod. This option is only effective when encryption.type is set to ipsec. |
-| encryption.nodeEncryption | bool | `false` | Enable encryption for pure node to node traffic. This option is only effective when encryption.type is set to ipsec. |
-| encryption.secretName | string | `"cilium-ipsec-keys"` | Deprecated in favor of encryption.ipsec.secretName. Name of the Kubernetes secret containing the encryption keys. This option is only effective when encryption.type is set to ipsec. |
-| encryption.type | string | `"ipsec"` | Encryption method. Can be either ipsec or wireguard. |
-| endpointHealthChecking.enabled | bool | `true` | Enable connectivity health checking between virtual endpoints. |
-| endpointRoutes.enabled | bool | `false` | Enable use of per endpoint routes instead of routing via the cilium_host interface. |
-| endpointStatus | object | `{"enabled":false,"status":""}` | Enable endpoint status. Status can be: policy, health, controllers, logs and / or state. For 2 or more options use a comma. |
-| eni.awsReleaseExcessIPs | bool | `false` | Release IPs not used from the ENI |
-| eni.ec2APIEndpoint | string | `""` | EC2 API endpoint to use |
-| eni.enabled | bool | `false` | Enable Elastic Network Interface (ENI) integration. |
-| eni.eniTags | object | `{}` | Tags to apply to the newly created ENIs |
-| eni.iamRole | string | `""` | If using IAM role for Service Accounts will not try to inject identity values from cilium-aws kubernetes secret. Adds annotation to service account if managed by Helm. See https://github.com/aws/amazon-eks-pod-identity-webhook |
-| eni.subnetIDsFilter | string | `""` | Filter via subnet IDs which will dictate which subnets are going to be used to create new ENIs |
-| eni.subnetTagsFilter | string | `""` | Filter via tags (k=v) which will dictate which subnets are going to be used to create new ENIs |
-| eni.updateEC2AdapterLimitViaAPI | bool | `false` | Update ENI Adapter limits from the EC2 API |
-| etcd.clusterDomain | string | `"cluster.local"` | Cluster domain for cilium-etcd-operator. |
-| etcd.enabled | bool | `false` | Enable etcd mode for the agent. |
-| etcd.endpoints | list | `["https://CHANGE-ME:2379"]` | List of etcd endpoints (not needed when using managed=true). |
-| etcd.extraArgs | list | `[]` | Additional cilium-etcd-operator container arguments. |
-| etcd.extraConfigmapMounts | list | `[]` | Additional cilium-etcd-operator ConfigMap mounts. |
-| etcd.extraHostPathMounts | list | `[]` | Additional cilium-etcd-operator hostPath mounts. |
-| etcd.extraInitContainers | list | `[]` | Additional InitContainers to initialize the pod. |
-| etcd.image | object | `{"pullPolicy":"IfNotPresent","repository":"quay.io/cilium/cilium-etcd-operator","tag":"v2.0.7"}` | cilium-etcd-operator image. |
-| etcd.k8sService | bool | `false` | If etcd is behind a k8s service set this option to true so that Cilium does the service translation automatically without requiring a DNS to be running. |
-| etcd.nodeSelector | object | `{}` | Node labels for cilium-etcd-operator pod assignment ref: https://kubernetes.io/docs/user-guide/node-selection/ |
-| etcd.podAnnotations | object | `{}` | Annotations to be added to cilium-etcd-operator pods |
-| etcd.podDisruptionBudget | object | `{"enabled":true,"maxUnavailable":2}` | PodDisruptionBudget settings ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
-| etcd.podLabels | object | `{}` | Labels to be added to cilium-etcd-operator pods |
-| etcd.priorityClassName | string | `""` | cilium-etcd-operator priorityClassName |
-| etcd.resources | object | `{}` | cilium-etcd-operator resource limits & requests ref: https://kubernetes.io/docs/user-guide/compute-resources/ |
-| etcd.securityContext | object | `{}` | Security context to be added to cilium-etcd-operator pods |
-| etcd.ssl | bool | `false` | Enable use of TLS/SSL for connectivity to etcd. (auto-enabled if managed=true) |
-| etcd.tolerations | list | `[{"operator":"Exists"}]` | Node tolerations for cilium-etcd-operator scheduling to nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| etcd.updateStrategy | object | `{"rollingUpdate":{"maxSurge":1,"maxUnavailable":1},"type":"RollingUpdate"}` | cilium-etcd-operator update strategy |
-| externalIPs.enabled | bool | `false` | Enable ExternalIPs service support. |
-| externalWorkloads | object | `{"enabled":false}` | Configure external workloads support |
-| externalWorkloads.enabled | bool | `false` | Enable support for external workloads, such as VMs (false by default). |
-| extraArgs | list | `[]` | Additional agent container arguments. |
-| extraConfig | object | `{}` | extraConfig allows you to specify additional configuration parameters to be included in the cilium-config configmap. |
-| extraConfigmapMounts | list | `[]` | Additional agent ConfigMap mounts. |
-| extraEnv | object | `{}` | Additional agent container environment variables. |
-| extraHostPathMounts | list | `[]` | Additional agent hostPath mounts. |
-| extraInitContainers | list | `[]` | Additional InitContainers to initialize the pod. |
-| gke.enabled | bool | `false` | Enable Google Kubernetes Engine integration |
-| healthChecking | bool | `true` | Enable connectivity health checking. |
-| healthPort | int | `9876` | TCP port for the agent health API. This is not the port for cilium-health. |
-| hostFirewall | bool | `false` | Enables the enforcement of host policies in the eBPF datapath. |
-| hostPort.enabled | bool | `false` | Enable hostPort service support. |
-| hostServices | object | `{"enabled":false,"protocols":"tcp,udp"}` | Configure ClusterIP service handling in the host namespace (the node). |
-| hostServices.enabled | bool | `false` | Enable host reachable services. |
-| hostServices.protocols | string | `"tcp,udp"` | Supported list of protocols to apply ClusterIP translation to. |
-| hubble.enabled | bool | `true` | Enable Hubble (true by default). |
-| hubble.listenAddress | string | `":4244"` | An additional address for Hubble to listen to. Set this field ":4244" if you are enabling Hubble Relay, as it assumes that Hubble is listening on port 4244. |
-| hubble.metrics | object | `{"enabled":null,"port":9091,"serviceMonitor":{"enabled":false,"labels":{}}}` | Hubble metrics configuration. See https://docs.cilium.io/en/stable/configuration/metrics/#hubble-metrics for more comprehensive documentation about Hubble metrics. |
-| hubble.metrics.enabled | string | `nil` | Configures the list of metrics to collect. If empty or null, metrics are disabled. Example:   enabled:   - dns:query;ignoreAAAA   - drop   - tcp   - flow   - icmp   - http You can specify the list of metrics from the helm CLI:   --set metrics.enabled="{dns:query;ignoreAAAA,drop,tcp,flow,icmp,http}" |
-| hubble.metrics.port | int | `9091` | Configure the port the hubble metric server listens on. |
-| hubble.metrics.serviceMonitor.enabled | bool | `false` | Create ServiceMonitor resources for Prometheus Operator. This requires the prometheus CRDs to be available. ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml) |
-| hubble.metrics.serviceMonitor.labels | object | `{}` | Labels to add to ServiceMonitor hubble |
-| hubble.relay.dialTimeout | string | `nil` | Dial timeout to connect to the local hubble instance to receive peer information (e.g. "30s"). |
-| hubble.relay.enabled | bool | `false` | Enable Hubble Relay (requires hubble.enabled=true) |
-| hubble.relay.image | object | `{"digest":"sha256:385fcc4fa315eb6b66626c3e5f607b6b6514c8c3a863c47c2b2dbc97790acb47","pullPolicy":"IfNotPresent","repository":"quay.io/cilium/hubble-relay","tag":"v1.10.7","useDigest":true}` | Hubble-relay container image. |
-| hubble.relay.listenHost | string | `""` | Host to listen to. Specify an empty string to bind to all the interfaces. |
-| hubble.relay.listenPort | string | `"4245"` | Port to listen to. |
-| hubble.relay.nodeSelector | object | `{}` | Node labels for pod assignment ref: https://kubernetes.io/docs/user-guide/node-selection/ |
-| hubble.relay.podAnnotations | object | `{}` | Annotations to be added to hubble-relay pods |
-| hubble.relay.podLabels | object | `{}` | Labels to be added to hubble-relay pods |
-| hubble.relay.replicas | int | `1` | Number of replicas run for the hubble-relay deployment. |
-| hubble.relay.resources | object | `{}` | Specifies the resources for the hubble-relay pods |
-| hubble.relay.retryTimeout | string | `nil` | Backoff duration to retry connecting to the local hubble instance in case of failure (e.g. "30s"). |
-| hubble.relay.rollOutPods | bool | `false` | Roll out Hubble Relay pods automatically when configmap is updated. |
-| hubble.relay.sortBufferDrainTimeout | string | `nil` | When the per-request flows sort buffer is not full, a flow is drained every time this timeout is reached (only affects requests in follow-mode) (e.g. "1s"). |
-| hubble.relay.sortBufferLenMax | string | `nil` | Max number of flows that can be buffered for sorting before being sent to the client (per request) (e.g. 100). |
-| hubble.relay.tls | object | `{"client":{"cert":"","key":""},"server":{"cert":"","enabled":false,"key":""}}` | TLS configuration for Hubble Relay |
-| hubble.relay.tls.client | object | `{"cert":"","key":""}` | base64 encoded PEM values for the hubble-relay client certificate and private key This keypair is presented to Hubble server instances for mTLS authentication and is required when hubble.tls.enabled is true. These values need to be set manually if hubble.tls.auto.enabled is false. |
-| hubble.relay.tls.server | object | `{"cert":"","enabled":false,"key":""}` | base64 encoded PEM values for the hubble-relay server certificate and private key |
-| hubble.relay.tolerations | list | `[]` | Node tolerations for pod assignment on nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| hubble.relay.updateStrategy | object | `{"rollingUpdate":{"maxUnavailable":1},"type":"RollingUpdate"}` | hubble-relay update strategy |
-| hubble.socketPath | string | `"/var/run/cilium/hubble.sock"` | Unix domain socket path to listen to when Hubble is enabled. |
-| hubble.tls | object | `{"auto":{"certValidityDuration":1095,"enabled":true,"method":"helm","schedule":"0 0 1 */4 *"},"ca":{"cert":"","key":""},"enabled":true,"server":{"cert":"","key":""}}` | TLS configuration for Hubble |
-| hubble.tls.auto | object | `{"certValidityDuration":1095,"enabled":true,"method":"helm","schedule":"0 0 1 */4 *"}` | Configure automatic TLS certificates generation. |
-| hubble.tls.auto.certValidityDuration | int | `1095` | Generated certificates validity duration in days. |
-| hubble.tls.auto.enabled | bool | `true` | Auto-generate certificates. When set to true, automatically generate a CA and certificates to enable mTLS between Hubble server and Hubble Relay instances. If set to false, the certs for Hubble server need to be provided by setting appropriate values below. |
-| hubble.tls.auto.method | string | `"helm"` | Set the method to auto-generate certificates. Supported values: - helm:      This method uses Helm to generate all certificates. - cronJob:   This method uses a Kubernetes CronJob the generate any              certificates not provided by the user at installation              time. |
-| hubble.tls.auto.schedule | string | `"0 0 1 */4 *"` | Schedule for certificates regeneration (regardless of their expiration date). Only used if method is "cronJob". If nil, then no recurring job will be created. Instead, only the one-shot job is deployed to generate the certificates at installation time. Defaults to midnight of the first day of every fourth month. For syntax, see https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule |
-| hubble.tls.ca | object | `{"cert":"","key":""}` | base64 encoded PEM values for the Hubble CA certificate and private key. |
-| hubble.tls.ca.key | string | `""` | The CA private key (optional). If it is provided, then it will be used by hubble.tls.auto.method=cronJob to generate all other certificates. Otherwise, a ephemeral CA is generated if hubble.tls.auto.enabled=true. |
-| hubble.tls.enabled | bool | `true` | Enable mutual TLS for listenAddress. Setting this value to false is highly discouraged as the Hubble API provides access to potentially sensitive network flow metadata and is exposed on the host network. |
-| hubble.tls.server | object | `{"cert":"","key":""}` | base64 encoded PEM values for the Hubble server certificate and private key |
-| hubble.ui.backend.image | object | `{"pullPolicy":"IfNotPresent","repository":"quay.io/cilium/hubble-ui-backend","tag":"v0.8.5@sha256:2bce50cf6c32719d072706f7ceccad654bfa907b2745a496da99610776fe31ed"}` | Hubble-ui backend image. |
-| hubble.ui.backend.resources | object | `{}` | Resource requests and limits for the 'backend' container of the 'hubble-ui' deployment. |
-| hubble.ui.enabled | bool | `false` | Whether to enable the Hubble UI. |
-| hubble.ui.frontend.image | object | `{"pullPolicy":"IfNotPresent","repository":"quay.io/cilium/hubble-ui","tag":"v0.8.5@sha256:4eaca1ec1741043cfba6066a165b3bf251590cf4ac66371c4f63fbed2224ebb4"}` | Hubble-ui frontend image. |
-| hubble.ui.frontend.resources | object | `{}` | Resource requests and limits for the 'frontend' container of the 'hubble-ui' deployment. |
-| hubble.ui.ingress | object | `{"annotations":{},"enabled":false,"hosts":["chart-example.local"],"tls":[]}` | hubble-ui ingress configuration. |
-| hubble.ui.nodeSelector | object | `{}` | Node labels for pod assignment ref: https://kubernetes.io/docs/user-guide/node-selection/ |
-| hubble.ui.podAnnotations | object | `{}` | Annotations to be added to hubble-ui pods |
-| hubble.ui.podLabels | object | `{}` | Labels to be added to hubble-ui pods |
-| hubble.ui.proxy.image | object | `{"pullPolicy":"IfNotPresent","repository":"docker.io/envoyproxy/envoy","tag":"v1.18.4@sha256:e5c2bb2870d0e59ce917a5100311813b4ede96ce4eb0c6bfa879e3fbe3e83935"}` | Hubble-ui ingress proxy image. |
-| hubble.ui.proxy.resources | object | `{}` | Resource requests and limits for the 'proxy' container of the 'hubble-ui' deployment. |
-| hubble.ui.replicas | int | `1` | The number of replicas of Hubble UI to deploy. |
-| hubble.ui.rollOutPods | bool | `false` | Roll out Hubble-ui pods automatically when configmap is updated. |
-| hubble.ui.securityContext.enabled | bool | `true` | Whether to set the security context on the Hubble UI pods. |
-| hubble.ui.tolerations | list | `[]` | Node tolerations for pod assignment on nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| hubble.ui.updateStrategy | object | `{"rollingUpdate":{"maxUnavailable":1},"type":"RollingUpdate"}` | hubble-ui update strategy. |
-| identityAllocationMode | string | `"crd"` | Method to use for identity allocation (`crd` or `kvstore`). |
-| image | object | `{"digest":"sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca","pullPolicy":"IfNotPresent","repository":"quay.io/cilium/cilium","tag":"v1.10.7","useDigest":true}` | Agent container image. |
-| imagePullSecrets | string | `nil` | Configure image pull secrets for pulling container images |
-| installIptablesRules | bool | `true` | Configure whether to install iptables rules to allow for TPROXY (L7 proxy injection), iptables-based masquerading and compatibility with kube-proxy. |
-| installNoConntrackIptablesRules | bool | `false` | Install Iptables rules to skip netfilter connection tracking on all pod traffic. This option is only effective when Cilium is running in direct routing and full KPR mode. Moreover, this option cannot be enabled when Cilium is running in a managed Kubernetes environment or in a chained CNI setup. |
-| ipMasqAgent | object | `{"enabled":false}` | Configure the eBPF-based ip-masq-agent |
-| ipam.mode | string | `"cluster-pool"` | Configure IP Address Management mode. ref: https://docs.cilium.io/en/stable/concepts/networking/ipam/ |
-| ipam.operator.clusterPoolIPv4MaskSize | int | `24` | IPv4 CIDR mask size to delegate to individual nodes for IPAM. |
-| ipam.operator.clusterPoolIPv4PodCIDR | string | `"10.0.0.0/8"` | IPv4 CIDR range to delegate to individual nodes for IPAM. |
-| ipam.operator.clusterPoolIPv6MaskSize | int | `120` | IPv6 CIDR mask size to delegate to individual nodes for IPAM. |
-| ipam.operator.clusterPoolIPv6PodCIDR | string | `"fd00::/104"` | IPv6 CIDR range to delegate to individual nodes for IPAM. |
-| ipv4.enabled | bool | `true` | Enable IPv4 support. |
-| ipv6.enabled | bool | `false` | Enable IPv6 support. |
-| ipvlan.enabled | bool | `false` | Enable the IPVLAN datapath |
-| k8s | object | `{}` | Configure Kubernetes specific configuration |
-| keepDeprecatedLabels | bool | `false` | Keep the deprecated selector labels when deploying Cilium DaemonSet. |
-| keepDeprecatedProbes | bool | `false` | Keep the deprecated probes when deploying Cilium DaemonSet |
-| kubeProxyReplacementHealthzBindAddr | string | `""` | healthz server bind address for the kube-proxy replacement. To enable set the value to '0.0.0.0:10256' for all ipv4 addresses and this '[::]:10256' for all ipv6 addresses. By default it is disabled. |
-| l2NeighDiscovery.arping-refresh-period | string | `"5m"` | Set period for arping |
-| l2NeighDiscovery.enabled | bool | `true` | Enable L2 neighbour discovery in the agent |
-| l7Proxy | bool | `true` | Enable Layer 7 network policy. |
-| livenessProbe.failureThreshold | int | `10` | failure threshold of liveness probe |
-| livenessProbe.periodSeconds | int | `30` | interval between checks of the liveness probe |
-| localRedirectPolicy | bool | `false` | Enable Local Redirect Policy. |
-| logSystemLoad | bool | `false` | Enables periodic logging of system load |
-| maglev | object | `{}` | Configure maglev consistent hashing |
-| monitor | object | `{"enabled":false}` | Specify the CIDR for native routing (ie to avoid IP masquerade for). This value corresponds to the configured cluster-cidr. nativeRoutingCIDR: |
-| monitor.enabled | bool | `false` | Enable the cilium-monitor sidecar. |
-| name | string | `"cilium"` | Agent container name. |
-| nodePort | object | `{"autoProtectPortRange":true,"bindProtection":true,"enableHealthCheck":true,"enabled":false}` | Configure N-S k8s service loadbalancing |
-| nodePort.autoProtectPortRange | bool | `true` | Append NodePort range to ip_local_reserved_ports if clash with ephemeral ports is detected. |
-| nodePort.bindProtection | bool | `true` | Set to true to prevent applications binding to service ports. |
-| nodePort.enableHealthCheck | bool | `true` | Enable healthcheck nodePort server for NodePort services |
-| nodePort.enabled | bool | `false` | Enable the Cilium NodePort service implementation. |
-| nodeinit.bootstrapFile | string | `"/tmp/cilium-bootstrap-time"` | bootstrapFile is the location of the file where the bootstrap timestamp is written by the node-init DaemonSet |
-| nodeinit.enabled | bool | `false` | Enable the node initialization DaemonSet |
-| nodeinit.extraConfigmapMounts | list | `[]` | Additional nodeinit ConfigMap mounts. |
-| nodeinit.extraEnv | object | `{}` | Additional nodeinit environment variables. |
-| nodeinit.extraHostPathMounts | list | `[]` | Additional nodeinit host path mounts. |
-| nodeinit.extraInitContainers | list | `[]` | Additional nodeinit init containers. |
-| nodeinit.image | object | `{"pullPolicy":"IfNotPresent","repository":"quay.io/cilium/startup-script","tag":"62bfbe88c17778aad7bef9fa57ff9e2d4a9ba0d8"}` | node-init image. |
-| nodeinit.nodeSelector | object | `{}` | Node labels for nodeinit pod assignment ref: https://kubernetes.io/docs/user-guide/node-selection/ |
-| nodeinit.podAnnotations | object | `{}` | Annotations to be added to node-init pods. |
-| nodeinit.podDisruptionBudget | object | `{"enabled":true,"maxUnavailable":2}` | PodDisruptionBudget settings ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
-| nodeinit.podLabels | object | `{}` | Labels to be added to node-init pods. |
-| nodeinit.priorityClassName | string | `""` | The priority class to use for the nodeinit pod. |
-| nodeinit.resources | object | `{"requests":{"cpu":"100m","memory":"100Mi"}}` | nodeinit resource limits & requests ref: https://kubernetes.io/docs/user-guide/compute-resources/ |
-| nodeinit.securityContext | object | `{}` | Security context to be added to nodeinit pods. |
-| nodeinit.tolerations | list | `[{"operator":"Exists"}]` | Node tolerations for nodeinit scheduling to nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| nodeinit.updateStrategy | object | `{"type":"RollingUpdate"}` | node-init update strategy |
-| operator.affinity | object | `{"podAntiAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":[{"labelSelector":{"matchExpressions":[{"key":"io.cilium/app","operator":"In","values":["operator"]}]},"topologyKey":"kubernetes.io/hostname"}]}}` | cilium-operator affinity |
-| operator.enabled | bool | `true` | Enable the cilium-operator component (required). |
-| operator.endpointGCInterval | string | `"5m0s"` | Interval for endpoint garbage collection. |
-| operator.extraArgs | list | `[]` | Additional cilium-operator container arguments. |
-| operator.extraConfigmapMounts | list | `[]` | Additional cilium-operator ConfigMap mounts. |
-| operator.extraEnv | object | `{}` | Additional cilium-operator environment variables. |
-| operator.extraHostPathMounts | list | `[]` | Additional cilium-operator hostPath mounts. |
-| operator.extraInitContainers | list | `[]` | Additional InitContainers to initialize the pod. |
-| operator.identityGCInterval | string | `"15m0s"` | Interval for identity garbage collection. |
-| operator.identityHeartbeatTimeout | string | `"30m0s"` | Timeout for identity heartbeats. |
-| operator.image | object | `{"alibabacloudDigest":"sha256:7a6ccc99195ae6a8216d2a1e1e0cc05d49c2d263b194895da264899fe9d0f45a","awsDigest":"sha256:97b378e0e3b6b5ade6ae1706024c7a25fe6fc48e00102b65a6b7ac51d6327f40","azureDigest":"sha256:556d692b2f08822101c159d9d6f731efe6c437d2b80f0ef96813e8745203c852","genericDigest":"sha256:d0b491d8d8cb45862ed7f0410f65e7c141832f0f95262643fa5ff1edfcddcafe","pullPolicy":"IfNotPresent","repository":"quay.io/cilium/operator","suffix":"","tag":"v1.10.7","useDigest":true}` | cilium-operator image. |
-| operator.nodeSelector | object | `{}` | Node labels for cilium-operator pod assignment ref: https://kubernetes.io/docs/user-guide/node-selection/ |
-| operator.podAnnotations | object | `{}` | Annotations to be added to cilium-operator pods |
-| operator.podDisruptionBudget | object | `{"enabled":false,"maxUnavailable":1}` | PodDisruptionBudget settings ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
-| operator.podLabels | object | `{}` | Labels to be added to cilium-operator pods |
-| operator.priorityClassName | string | `""` | cilium-operator priorityClassName |
-| operator.prometheus | object | `{"enabled":false,"port":6942,"serviceMonitor":{"enabled":false,"labels":{}}}` | Enable prometheus metrics for cilium-operator on the configured port at /metrics |
-| operator.prometheus.serviceMonitor.enabled | bool | `false` | Enable service monitors. This requires the prometheus CRDs to be available (see https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml) |
-| operator.prometheus.serviceMonitor.labels | object | `{}` | Labels to add to ServiceMonitor cilium-operator |
-| operator.replicas | int | `2` | Number of replicas to run for the cilium-operator deployment |
-| operator.resources | object | `{}` | cilium-operator resource limits & requests ref: https://kubernetes.io/docs/user-guide/compute-resources/ |
-| operator.rollOutPods | bool | `false` | Roll out cilium-operator pods automatically when configmap is updated. |
-| operator.securityContext | object | `{}` | Security context to be added to cilium-operator pods |
-| operator.serviceAccountName | string | `"cilium-operator"` | For using with an existing serviceAccount. |
-| operator.skipCRDCreation | bool | `false` | Skip CRDs creation for cilium-operator |
-| operator.tolerations | list | `[{"operator":"Exists"}]` | Node tolerations for cilium-operator scheduling to nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| operator.updateStrategy | object | `{"rollingUpdate":{"maxSurge":1,"maxUnavailable":1},"type":"RollingUpdate"}` | cilium-operator update strategy |
-| podAnnotations | object | `{}` | Annotations to be added to agent pods |
-| podDisruptionBudget | object | `{"enabled":true,"maxUnavailable":2}` | PodDisruptionBudget settings ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
-| podLabels | object | `{}` | Labels to be added to agent pods |
-| policyEnforcementMode | string | `"default"` | The agent can be put into one of the three policy enforcement modes: default, always and never. ref: https://docs.cilium.io/en/stable/policy/intro/#policy-enforcement-modes |
-| pprof.enabled | bool | `false` | Enable Go pprof debugging |
-| preflight.enabled | bool | `false` | Enable Cilium pre-flight resources (required for upgrade) |
-| preflight.extraConfigmapMounts | list | `[]` | Additional preflight ConfigMap mounts. |
-| preflight.extraEnv | object | `{}` | Additional preflight environment variables. |
-| preflight.extraHostPathMounts | list | `[]` | Additional preflight host path mounts. |
-| preflight.extraInitContainers | list | `[]` | Additional preflight init containers. |
-| preflight.image | object | `{"digest":"sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca","pullPolicy":"IfNotPresent","repository":"quay.io/cilium/cilium","tag":"v1.10.7","useDigest":true}` | Cilium pre-flight image. |
-| preflight.nodeSelector | object | `{}` | Node labels for preflight pod assignment ref: https://kubernetes.io/docs/user-guide/node-selection/ |
-| preflight.podAnnotations | object | `{}` | Annotations to be added to preflight pods |
-| preflight.podDisruptionBudget | object | `{"enabled":true,"maxUnavailable":2}` | PodDisruptionBudget settings ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/ |
-| preflight.podLabels | object | `{}` | Labels to be added to the preflight pod. |
-| preflight.priorityClassName | string | `""` | The priority class to use for the preflight pod. |
-| preflight.resources | object | `{}` | preflight resource limits & requests ref: https://kubernetes.io/docs/user-guide/compute-resources/ |
-| preflight.securityContext | object | `{}` | Security context to be added to preflight pods |
-| preflight.tofqdnsPreCache | string | `""` | Path to write the `--tofqdns-pre-cache` file to. |
-| preflight.tolerations | list | `[{"effect":"NoSchedule","key":"node.kubernetes.io/not-ready"},{"effect":"NoSchedule","key":"node-role.kubernetes.io/master"},{"effect":"NoSchedule","key":"node.cloudprovider.kubernetes.io/uninitialized","value":"true"},{"key":"CriticalAddonsOnly","operator":"Exists"}]` | Node tolerations for preflight scheduling to nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| preflight.updateStrategy | object | `{"type":"RollingUpdate"}` | preflight update strategy |
-| preflight.validateCNPs | bool | `true` | By default we should always validate the installed CNPs before upgrading Cilium. This will make sure the user will have the policies deployed in the cluster with the right schema. |
-| priorityClassName | string | `""` | The priority class to use for cilium-agent. |
-| prometheus | object | `{"enabled":false,"metrics":null,"port":9090,"serviceMonitor":{"enabled":false,"labels":{}}}` | Configure prometheus metrics on the configured port at /metrics |
-| prometheus.metrics | string | `nil` | Metrics that should be enabled or disabled from the default metric list. (+metric_foo to enable metric_foo , -metric_bar to disable metric_bar). ref: https://docs.cilium.io/en/stable/operations/metrics/#exported-metrics |
-| prometheus.serviceMonitor.enabled | bool | `false` | Enable service monitors. This requires the prometheus CRDs to be available (see https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml) |
-| prometheus.serviceMonitor.labels | object | `{}` | Labels to add to ServiceMonitor cilium-agent |
-| proxy | object | `{"prometheus":{"enabled":true,"port":"9095"},"sidecarImageRegex":"cilium/istio_proxy"}` | Configure Istio proxy options. |
-| proxy.sidecarImageRegex | string | `"cilium/istio_proxy"` | Regular expression matching compatible Istio sidecar istio-proxy container image names |
-| rbac.create | bool | `true` | Enable creation of Resource-Based Access Control configuration. |
-| readinessProbe.failureThreshold | int | `3` | failure threshold of readiness probe |
-| readinessProbe.periodSeconds | int | `30` | interval between checks of the readiness probe |
-| remoteNodeIdentity | bool | `true` | Enable use of the remote node identity. ref: https://docs.cilium.io/en/v1.7/install/upgrade/#configmap-remote-node-identity |
-| resourceQuotas | object | `{"cilium":{"hard":{"pods":"10k"}},"enabled":false,"operator":{"hard":{"pods":"15"}}}` | Enable resource quotas for priority classes used in the cluster. |
-| resources | object | `{}` | Agent resource limits & requests ref: https://kubernetes.io/docs/user-guide/compute-resources/ |
-| rollOutCiliumPods | bool | `false` | Roll out cilium agent pods automatically when configmap is updated. |
-| securityContext | object | `{}` | Security context to be added to agent pods |
-| serviceAccounts | object | Component's fully qualified name. | Define serviceAccount names for components. |
-| serviceAccounts.clustermeshcertgen | object | `{"annotations":{},"create":true,"name":"clustermesh-apiserver-generate-certs"}` | Clustermeshcertgen is used if clustermesh.apiserver.tls.auto.method=cronJob |
-| serviceAccounts.hubblecertgen | object | `{"annotations":{},"create":true,"name":"hubble-generate-certs"}` | Hubblecertgen is used if hubble.tls.auto.method=cronJob |
-| sleepAfterInit | bool | `false` | Do not run Cilium agent when running with clean mode. Useful to completely uninstall Cilium as it will stop Cilium from starting and create artifacts in the node. |
-| sockops | object | `{"enabled":false}` | Configure BPF socket operations configuration |
-| startupProbe.failureThreshold | int | `105` | failure threshold of startup probe. 105 x 2s translates to the old behaviour of the readiness probe (120s delay + 30 x 3s) |
-| startupProbe.periodSeconds | int | `2` | interval between checks of the startup probe |
-| tls | object | `{"enabled":true,"secretsBackend":"local"}` | Configure TLS configuration in the agent. |
-| tolerations | list | `[{"operator":"Exists"}]` | Node tolerations for agent scheduling to nodes with taints ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ |
-| tunnel | string | `"vxlan"` | Configure the encapsulation configuration for communication between nodes. Possible values:   - disabled   - vxlan (default)   - geneve |
-| updateStrategy | object | `{"rollingUpdate":{"maxUnavailable":2},"type":"RollingUpdate"}` | Cilium agent update strategy |
-| wellKnownIdentities.enabled | bool | `false` | Enable the use of well-known identities. |
diff --git a/charts/cilium/README.md.gotmpl b/charts/cilium/README.md.gotmpl
deleted file mode 100644
index 1e777a2..0000000
--- a/charts/cilium/README.md.gotmpl
+++ /dev/null
@@ -1,54 +0,0 @@
-{{ template "chart.header" . }}
-
-{{ template "chart.deprecationWarning" . }}
-
-{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
-
-Cilium is open source software for providing and transparently securing
-network connectivity and loadbalancing between application workloads such as
-application containers or processes. Cilium operates at Layer 3/4 to provide
-traditional networking and security services as well as Layer 7 to protect and
-secure use of modern application protocols such as HTTP, gRPC and Kafka.
-
-A new Linux kernel technology called eBPF is at the foundation of Cilium.
-It supports dynamic insertion of eBPF bytecode into the Linux kernel at various
-integration points such as: network IO, application sockets, and tracepoints
-to implement security, networking and visibility logic. eBPF is highly
-efficient and flexible.
-
-![Cilium feature overview](https://raw.githubusercontent.com/cilium/cilium/master/Documentation/images/cilium_overview.png)
-
-## Prerequisites
-
-* Kubernetes: `{{ template "chart.kubeVersion" . }}`
-* Helm: `>= 3.0`
-
-## Getting Started
-
-Try Cilium on any Kubernetes distribution in under 15 minutes:
-
-| Minikube | Self-Managed K8s | Amazon EKS | Google GKE | Microsoft AKS |
-|:-:|:-:|:-:|:-:|:-:|
-| [![Minikube](https://raw.githubusercontent.com/cilium/charts/master/images/minikube.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Self-Managed Kubernetes](https://raw.githubusercontent.com/cilium/charts/master/images/k8s.png)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Amazon EKS](https://raw.githubusercontent.com/cilium/charts/master/images/aws.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Google GKE](https://raw.githubusercontent.com/cilium/charts/master/images/google-cloud.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) | [![Microsoft AKS](https://raw.githubusercontent.com/cilium/charts/master/images/azure.svg)](https://docs.cilium.io/en/stable/gettingstarted/k8s-install-default/) |
-
-Or, for a quick install with the default configuration:
-
-```
-$ helm repo add cilium https://helm.cilium.io/
-$ helm install cilium cilium/cilium --namespace=kube-system
-```
-
-After Cilium is installed, you can explore the features that Cilium has to
-offer from the [Getting Started Guides page](https://docs.cilium.io/en/latest/gettingstarted/).
-
-{{ template "chart.maintainersSection" . }}
-
-{{ template "chart.sourcesSection" . }}
-
-## Getting Help
-
-The best way to get help if you get stuck is to ask a question on the
-[Cilium Slack channel](https://cilium.herokuapp.com/). With Cilium
-contributors across the globe, there is almost always someone available to help.
-
-{{ template "chart.valuesSection" . }}
diff --git a/charts/cilium/files/envoy/envoy.yaml b/charts/cilium/files/envoy/envoy.yaml
deleted file mode 100644
index 6d25613..0000000
--- a/charts/cilium/files/envoy/envoy.yaml
+++ /dev/null
@@ -1,71 +0,0 @@
-static_resources:
-  listeners:
-    - name: listener_hubble_ui
-      address:
-        socket_address:
-          address: 0.0.0.0
-          port_value: 8081
-      filter_chains:
-        - filters:
-            - name: envoy.filters.network.http_connection_manager
-              typed_config:
-                "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
-                codec_type: auto
-                stat_prefix: ingress_http
-                route_config:
-                  name: local_route
-                  virtual_hosts:
-                    - name: local_service
-                      domains: ["*"]
-                      routes:
-                        - match:
-                            prefix: "/api/"
-                          route:
-                            cluster: backend
-                            prefix_rewrite: "/"
-                            timeout: 0s
-                            max_stream_duration:
-                              grpc_timeout_header_max: 0s
-                        - match:
-                            prefix: "/"
-                          route:
-                            cluster: frontend
-                      cors:
-                        allow_origin_string_match:
-                          - prefix: "*"
-                        allow_methods: GET, PUT, DELETE, POST, OPTIONS
-                        allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
-                        max_age: "1728000"
-                        expose_headers: grpc-status,grpc-message
-                http_filters:
-                  - name: envoy.filters.http.grpc_web
-                  - name: envoy.filters.http.cors
-                  - name: envoy.filters.http.router
-  clusters:
-    - name: frontend
-      connect_timeout: 0.25s
-      type: strict_dns
-      lb_policy: round_robin
-      load_assignment:
-        cluster_name: frontend
-        endpoints:
-          - lb_endpoints:
-              - endpoint:
-                  address:
-                    socket_address:
-                      address: 127.0.0.1
-                      port_value: 8080
-    - name: backend
-      connect_timeout: 0.25s
-      type: logical_dns
-      lb_policy: round_robin
-      http2_protocol_options: {}
-      load_assignment:
-        cluster_name: backend
-        endpoints:
-          - lb_endpoints:
-              - endpoint:
-                  address:
-                    socket_address:
-                      address: 127.0.0.1
-                      port_value: 8090
diff --git a/charts/cilium/templates/NOTES.txt b/charts/cilium/templates/NOTES.txt
deleted file mode 100644
index 3024efa..0000000
--- a/charts/cilium/templates/NOTES.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if (and (.Values.preflight.enabled) (not (.Values.agent)) (not (.Values.operator.enabled))) }}
-    You have successfully ran the preflight check.
-    Now make sure to check the number of READY pods is the same as the number of running cilium pods.
-    Then make sure the cilium preflight deployment is also marked READY 1/1.
-    If you have an issues please refer to the CNP Validation section in the upgrade guide.
-{{- else if (and (.Values.hubble.enabled) (.Values.hubble.relay.enabled)) }}
-    {{- if (.Values.hubble.ui.enabled) }}
-        You have successfully installed {{ title .Chart.Name }} with Hubble Relay and Hubble UI.
-    {{- else }}
-        You have successfully installed {{ title .Chart.Name }} with Hubble Relay.
-    {{- end }}
-{{- else if .Values.hubble.enabled }}
-    You have successfully installed {{ title .Chart.Name }} with Hubble.
-{{- else }}
-    You have successfully installed {{ title .Chart.Name }}.
-{{- end }}
-
-Your release version is {{ .Chart.Version }}.
-
-For any further help, visit https://docs.cilium.io/en/v{{ (semver .Chart.Version).Major }}.{{ (semver .Chart.Version).Minor }}/gettinghelp
diff --git a/charts/cilium/templates/_clustermesh-apiserver-generate-certs-job-spec.tpl b/charts/cilium/templates/_clustermesh-apiserver-generate-certs-job-spec.tpl
deleted file mode 100644
index 62ce848..0000000
--- a/charts/cilium/templates/_clustermesh-apiserver-generate-certs-job-spec.tpl
+++ /dev/null
@@ -1,48 +0,0 @@
-{{- define "clustermesh-apiserver-generate-certs.job.spec" }}
-{{- $certValiditySecondsStr := printf "%ds" (mul .Values.clustermesh.apiserver.tls.auto.certValidityDuration 24 60 60) -}}
-spec:
-  template:
-    metadata:
-      labels:
-        k8s-app: clustermesh-apiserver-generate-certs
-        {{- with .Values.clustermesh.apiserver.podLabels }}
-        {{- toYaml . | nindent 8 }}
-        {{- end }}
-    spec:
-      serviceAccount: {{ .Values.serviceAccounts.clustermeshcertgen.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.clustermeshcertgen.name | quote }}
-      containers:
-        - name: certgen
-          image: {{ .Values.certgen.image.repository }}:{{ .Values.certgen.image.tag }}
-          imagePullPolicy: {{ .Values.certgen.image.pullPolicy }}
-          command:
-            - "/usr/bin/cilium-certgen"
-          args:
-            - "--cilium-namespace={{ .Release.Namespace }}"
-            - "--clustermesh-apiserver-ca-cert-reuse-secret"
-            {{- if .Values.debug.enabled }}
-            - "--debug"
-            {{- end }}
-            {{- if not (and .Values.clustermesh.apiserver.tls.ca.cert .Values.clustermesh.apiserver.tls.ca.key) }}
-            - "--clustermesh-apiserver-ca-cert-generate"
-            {{- end }}
-            {{- if not (and .Values.clustermesh.apiserver.tls.server.cert .Values.clustermesh.apiserver.tls.server.key) }}
-            - "--clustermesh-apiserver-server-cert-generate"
-            {{- end }}
-            {{- if not (and .Values.clustermesh.apiserver.tls.admin.cert .Values.clustermesh.apiserver.tls.admin.key) }}
-            - "--clustermesh-apiserver-admin-cert-generate"
-            {{- end }}
-            {{- if not (and .Values.clustermesh.apiserver.tls.client.cert .Values.clustermesh.apiserver.tls.client.key) }}
-            - "--clustermesh-apiserver-client-cert-generate"
-            {{- end }}
-            {{- if not (and .Values.clustermesh.apiserver.tls.remote.cert .Values.clustermesh.apiserver.tls.remote.key) }}
-            - "--clustermesh-apiserver-remote-cert-generate"
-            {{- end }}
-      hostNetwork: true
-      {{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-      {{ toYaml .Values.imagePullSecrets | indent 6 }}
-      {{- end }}
-      restartPolicy: OnFailure
-  ttlSecondsAfterFinished: {{ .Values.certgen.ttlSecondsAfterFinished }}
-{{- end }}
diff --git a/charts/cilium/templates/_helpers.tpl b/charts/cilium/templates/_helpers.tpl
deleted file mode 100644
index 73de1df..0000000
--- a/charts/cilium/templates/_helpers.tpl
+++ /dev/null
@@ -1,128 +0,0 @@
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "cilium.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
-{{- end }}
-
-{{/*
-Return the appropriate apiVersion for ingress.
-*/}}
-{{- define "ingress.apiVersion" -}}
-{{- if semverCompare ">=1.16-0, <1.19-0" .Capabilities.KubeVersion.Version -}}
-{{- print "networking.k8s.io/v1beta1" -}}
-{{- else if semverCompare "^1.19-0" .Capabilities.KubeVersion.Version -}}
-{{- print "networking.k8s.io/v1" -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Return the appropriate backend for Hubble UI ingress.
-*/}}
-{{- define "ingress.paths" -}}
-{{ if semverCompare ">=1.4-0, <1.19-0" .Capabilities.KubeVersion.Version -}}
-backend:
-  serviceName: hubble-ui
-  servicePort: http
-{{- else if semverCompare "^1.19-0" .Capabilities.KubeVersion.Version -}}
-pathType: Prefix
-backend:
-  service:
-    name: hubble-ui
-    port:
-      name: http
-{{- end -}}
-{{- end -}}
-
-
-{{/*
-Generate TLS certificates for Hubble Server and Hubble Relay.
-
-Note: these 2 lines, that are repeated several times below, are a trick to
-ensure the CA certs are generated only once:
-
-    $ca := .ca | default (genCA "hubble-ca.cilium.io" (.Values.hubble.tls.auto.certValidityDuration | int))
-    $_ := set . "ca" $ca
-
-Please, don't try to "simplify" them as without this trick, every generated
-certificate would be signed by a different CA.
-*/}}
-{{- define "hubble.ca.gen-cert-only" }}
-{{- $ca := .ca | default (genCA "hubble-ca.cilium.io" (.Values.hubble.tls.auto.certValidityDuration | int)) -}}
-{{- $_ := set . "ca" $ca -}}
-ca.crt: |-
-{{ $ca.Cert | indent 2 -}}
-{{- end }}
-{{- define "hubble.server.gen-certs" }}
-{{- $ca := .ca | default (genCA "hubble-ca.cilium.io" (.Values.hubble.tls.auto.certValidityDuration | int)) -}}
-{{- $_ := set . "ca" $ca -}}
-{{- $cn := list "*" (.Values.cluster.name | replace "." "-") "hubble-grpc.cilium.io" | join "." }}
-{{- $cert := genSignedCert $cn nil (list $cn) (.Values.hubble.tls.auto.certValidityDuration | int) $ca -}}
-ca.crt: {{ $ca.Cert | b64enc }}
-tls.crt: {{ $cert.Cert | b64enc }}
-tls.key: {{ $cert.Key | b64enc }}
-{{- end }}
-{{- define "hubble.relay.gen-certs" }}
-{{- $ca := .ca | default (genCA "hubble-ca.cilium.io" (.Values.hubble.tls.auto.certValidityDuration | int)) -}}
-{{- $_ := set . "ca" $ca -}}
-{{- $cert := genSignedCert "*.hubble-relay.cilium.io" nil (list "*.hubble-relay.cilium.io") (.Values.hubble.tls.auto.certValidityDuration | int) $ca -}}
-ca.crt: {{ $ca.Cert | b64enc }}
-tls.crt: {{ $cert.Cert | b64enc }}
-tls.key: {{ $cert.Key | b64enc }}
-{{- end }}
-
-{{/* Generate CA "vmca" for clustermesh-apiserver in the global dict. */}}
-{{- define "clustermesh.apiserver.generate.ca" }}
-{{- $ca := .cmca | default (genCA "clustermesh-apiserver-ca.cilium.io" (.Values.clustermesh.apiserver.tls.auto.certValidityDuration | int)) -}}
-{{- $_ := set . "cmca" $ca -}}
-{{- end }}
-
-{{/* Generate CA certificate clustermesh-apiserver. */}}
-{{- define "clustermesh.apiserver.ca.gen-cert" }}
-{{- template "clustermesh.apiserver.generate.ca" . -}}
-ca.crt: {{ .cmca.Cert | b64enc }}
-ca.key: {{ .cmca.Key | b64enc }}
-{{- end }}
-
-{{/* Generate server certificate clustermesh-apiserver. */}}
-{{- define "clustermesh.apiserver.server.gen-cert" }}
-{{- template "clustermesh.apiserver.generate.ca" . }}
-{{- $CN := "clustermesh-apiserver.cilium.io" }}
-{{- $IPs := (list "127.0.0.1") }}
-{{- $SANs := (list $CN "*.mesh.cilium.io") }}
-{{- $cert := genSignedCert $CN $IPs $SANs (.Values.clustermesh.apiserver.tls.auto.certValidityDuration | int) .cmca -}}
-ca.crt: {{ .cmca.Cert | b64enc }}
-tls.crt: {{ $cert.Cert | b64enc }}
-tls.key: {{ $cert.Key | b64enc }}
-{{- end }}
-
-{{/* Generate admin certificate clustermesh-apiserver. */}}
-{{- define "clustermesh.apiserver.admin.gen-cert" }}
-{{- template "clustermesh.apiserver.generate.ca" . }}
-{{- $CN := "root" }}
-{{- $SANs := (list "localhost") }}
-{{- $cert := genSignedCert $CN nil $SANs (.Values.clustermesh.apiserver.tls.auto.certValidityDuration | int) .cmca -}}
-ca.crt: {{ .cmca.Cert | b64enc }}
-tls.crt: {{ $cert.Cert | b64enc }}
-tls.key: {{ $cert.Key | b64enc }}
-{{- end }}
-
-{{/* Generate client certificate clustermesh-apiserver. */}}
-{{- define "clustermesh.apiserver.client.gen-cert" }}
-{{- template "clustermesh.apiserver.generate.ca" . }}
-{{- $CN := "externalworkload" }}
-{{- $cert := genSignedCert $CN nil nil (.Values.clustermesh.apiserver.tls.auto.certValidityDuration | int) .cmca -}}
-ca.crt: {{ .cmca.Cert | b64enc }}
-tls.crt: {{ $cert.Cert | b64enc }}
-tls.key: {{ $cert.Key | b64enc }}
-{{- end }}
-
-{{/* Generate remote certificate clustermesh-apiserver. */}}
-{{- define "clustermesh.apiserver.remote.gen-cert" }}
-{{- template "clustermesh.apiserver.generate.ca" . }}
-{{- $CN := "remote" }}
-{{- $cert := genSignedCert $CN nil nil (.Values.clustermesh.apiserver.tls.auto.certValidityDuration | int) .cmca -}}
-ca.crt: {{ .cmca.Cert | b64enc }}
-tls.crt: {{ $cert.Cert | b64enc }}
-tls.key: {{ $cert.Key | b64enc }}
-{{- end }}
diff --git a/charts/cilium/templates/_hubble-generate-certs-job-spec.tpl b/charts/cilium/templates/_hubble-generate-certs-job-spec.tpl
deleted file mode 100644
index e708488..0000000
--- a/charts/cilium/templates/_hubble-generate-certs-job-spec.tpl
+++ /dev/null
@@ -1,68 +0,0 @@
-{{- define "hubble-generate-certs.job.spec" }}
-{{- $certValiditySecondsStr := printf "%ds" (mul .Values.hubble.tls.auto.certValidityDuration 24 60 60) -}}
-spec:
-  template:
-    metadata:
-      labels:
-        k8s-app: hubble-generate-certs
-        {{- with .Values.certgen.podLabels }}
-        {{- toYaml . | nindent 8 }}
-        {{- end }}
-    spec:
-      serviceAccount: {{ .Values.serviceAccounts.hubblecertgen.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.hubblecertgen.name | quote }}
-      containers:
-        - name: certgen
-          image: {{ .Values.certgen.image.repository }}:{{ .Values.certgen.image.tag }}
-          imagePullPolicy: {{ .Values.certgen.image.pullPolicy }}
-          command:
-            - "/usr/bin/cilium-certgen"
-          # Because this is executed as a job, we pass the values as command
-          # line args instead of via config map. This allows users to inspect
-          # the values used in past runs by inspecting the completed pod.
-          args:
-            - "--cilium-namespace={{ .Release.Namespace }}"
-            - "--hubble-ca-reuse-secret=true"
-            - "--hubble-ca-secret-name=hubble-ca-secret"
-            {{- if .Values.debug.enabled }}
-            - "--debug"
-            {{- end }}
-            {{- $hubbleCAProvided := and .Values.hubble.tls.ca.cert .Values.hubble.tls.ca.key -}}
-            {{- if $hubbleCAProvided }}
-            - "--hubble-ca-generate=false"
-            {{- else }}
-            - "--hubble-ca-generate=true"
-            - "--hubble-ca-validity-duration={{ $certValiditySecondsStr }}"
-            - "--hubble-ca-config-map-create=true"
-            - "--hubble-ca-config-map-name=hubble-ca-cert"
-            {{- end }}
-            {{- if and .Values.hubble.tls.server.cert .Values.hubble.tls.server.key $hubbleCAProvided }}
-            - "--hubble-server-cert-generate=false"
-            {{- else }}
-            - "--hubble-server-cert-generate=true"
-            - "--hubble-server-cert-common-name={{ list "*" (.Values.cluster.name | replace "." "-") "hubble-grpc.cilium.io" | join "." }}"
-            - "--hubble-server-cert-validity-duration={{ $certValiditySecondsStr }}"
-            - "--hubble-server-cert-secret-name=hubble-server-certs"
-            {{- end }}
-            {{- if and .Values.hubble.relay.tls.client.cert .Values.hubble.relay.tls.client.key $hubbleCAProvided }}
-            - "--hubble-relay-client-cert-generate=false"
-            {{- else }}
-            - "--hubble-relay-client-cert-generate=true"
-            - "--hubble-relay-client-cert-validity-duration={{ $certValiditySecondsStr }}"
-            - "--hubble-relay-client-cert-secret-name=hubble-relay-client-certs"
-            {{- end }}
-            {{- if or (and .Values.hubble.relay.tls.server.cert .Values.hubble.relay.tls.server.key) (not .Values.hubble.relay.tls.server.enabled) }}
-            - "--hubble-relay-server-cert-generate=false"
-            {{- else if .Values.hubble.relay.tls.server.enabled }}
-            - "--hubble-relay-server-cert-generate=true"
-            - "--hubble-relay-server-cert-validity-duration={{ $certValiditySecondsStr }}"
-            - "--hubble-relay-server-cert-secret-name=hubble-relay-server-certs"
-            {{- end }}
-      hostNetwork: true
-      {{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-      {{ toYaml .Values.imagePullSecrets | indent 6 }}
-      {{- end }}
-      restartPolicy: OnFailure
-  ttlSecondsAfterFinished: {{ .Values.certgen.ttlSecondsAfterFinished }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-agent-clusterrole.yaml b/charts/cilium/templates/cilium-agent-clusterrole.yaml
deleted file mode 100644
index e17d5de..0000000
--- a/charts/cilium/templates/cilium-agent-clusterrole.yaml
+++ /dev/null
@@ -1,110 +0,0 @@
-{{- if and (.Values.agent) (not .Values.preflight.enabled) }}
-{{- /*
-Keep file in synced with cilium-preflight-clusterrole.yaml
-*/ -}}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: cilium
-rules:
-- apiGroups:
-  - networking.k8s.io
-  resources:
-  - networkpolicies
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - discovery.k8s.io
-  resources:
-  - endpointslices
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - namespaces
-  - services
-  - nodes
-  - endpoints
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - pods
-  - pods/finalizers
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-  - delete
-- apiGroups:
-  - ""
-  resources:
-  - nodes
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-- apiGroups:
-  - ""
-  resources:
-  - nodes
-  - nodes/status
-  verbs:
-  - patch
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  # Deprecated for removal in v1.10
-  - create
-  - list
-  - watch
-  - update
-
-  # This is used when validating policies in preflight. This will need to stay
-  # until we figure out how to avoid "get" inside the preflight, and then
-  # should be removed ideally.
-  - get
-{{- if eq "k8s" .Values.tls.secretsBackend }}
-- apiGroups:
-  - ""
-  resources:
-  - secrets
-  verbs:
-  - get
-{{- end }}
-- apiGroups:
-  - cilium.io
-  resources:
-  - ciliumnetworkpolicies
-  - ciliumnetworkpolicies/status
-  - ciliumnetworkpolicies/finalizers
-  - ciliumclusterwidenetworkpolicies
-  - ciliumclusterwidenetworkpolicies/status
-  - ciliumclusterwidenetworkpolicies/finalizers
-  - ciliumendpoints
-  - ciliumendpoints/status
-  - ciliumendpoints/finalizers
-  - ciliumnodes
-  - ciliumnodes/status
-  - ciliumnodes/finalizers
-  - ciliumidentities
-  - ciliumidentities/finalizers
-  - ciliumlocalredirectpolicies
-  - ciliumlocalredirectpolicies/status
-  - ciliumlocalredirectpolicies/finalizers
-  - ciliumegressnatpolicies
-  verbs:
-  - '*'
-{{- end }}
diff --git a/charts/cilium/templates/cilium-agent-clusterrolebinding.yaml b/charts/cilium/templates/cilium-agent-clusterrolebinding.yaml
deleted file mode 100644
index 6a8b660..0000000
--- a/charts/cilium/templates/cilium-agent-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and (.Values.agent) (not .Values.preflight.enabled) .Values.serviceAccounts.cilium.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  name: cilium
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: cilium
-subjects:
-- kind: ServiceAccount
-  name: {{ .Values.serviceAccounts.cilium.name | quote }}
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-agent-daemonset.yaml b/charts/cilium/templates/cilium-agent-daemonset.yaml
deleted file mode 100644
index cc64ff9..0000000
--- a/charts/cilium/templates/cilium-agent-daemonset.yaml
+++ /dev/null
@@ -1,620 +0,0 @@
-{{- if and (.Values.agent) (not .Values.preflight.enabled) }}
-
-{{- /*  Default values with backwards compatibility */ -}}
-{{- $defaultKeepDeprecatedProbes := "true" -}}
-
-{{- /* Default values when 1.8 was initially deployed */ -}}
-{{- if semverCompare ">=1.8" (default "1.8" .Values.upgradeCompatibility) -}}
-{{- $defaultKeepDeprecatedProbes = "false" -}}
-{{- end -}}
-
-{{- /* Workaround so that we can set the minimal k8s version that we support */ -}}
-{{- $k8sVersion := .Capabilities.KubeVersion.Version -}}
-{{- $k8sMajor := .Capabilities.KubeVersion.Major -}}
-{{- $k8sMinor := .Capabilities.KubeVersion.Minor -}}
-
-{{- if .Values.Capabilities -}}
-{{- if .Values.Capabilities.KubeVersion -}}
-{{- if .Values.Capabilities.KubeVersion.Version -}}
-{{- $k8sVersion = .Values.Capabilities.KubeVersion.Version -}}
-{{- if .Values.Capabilities.KubeVersion.Major -}}
-{{- $k8sMajor = toString (.Values.Capabilities.KubeVersion.Major) -}}
-{{- if .Values.Capabilities.KubeVersion.Minor -}}
-{{- $k8sMinor = toString (.Values.Capabilities.KubeVersion.Minor) -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-apiVersion: apps/v1
-kind: DaemonSet
-metadata:
-  labels:
-    k8s-app: cilium
-{{- if .Values.keepDeprecatedLabels }}
-    kubernetes.io/cluster-service: "true"
-{{- if and (eq .Release.Namespace "kube-system" ) .Values.gke.enabled }}
-{{- fail "Invalid configuration: Installing Cilium on GKE with 'kubernetes.io/cluster-service' labels on 'kube-system' namespace causes Cilium DaemonSet to be removed by GKE. Either install Cilium on a different Namespace or install with '--set keepDeprecatedLabels=false'"}}
-{{- end }}
-{{- end }}
-  name: cilium
-  namespace: {{ .Release.Namespace }}
-spec:
-  selector:
-    matchLabels:
-      k8s-app: cilium
-{{- if .Values.keepDeprecatedLabels }}
-      kubernetes.io/cluster-service: "true"
-{{- end }}
-{{- with .Values.updateStrategy }}
-  updateStrategy:
-    {{- toYaml . | trim | nindent 4 }}
-{{- end }}
-  template:
-    metadata:
-      annotations:
-{{- if and .Values.prometheus.enabled (not .Values.prometheus.serviceMonitor.enabled) }}
-        prometheus.io/port: "{{ .Values.prometheus.port }}"
-        prometheus.io/scrape: "true"
-{{- end }}
-{{- if .Values.rollOutCiliumPods }}
-        # ensure pods roll when configmap updates
-        cilium.io/cilium-configmap-checksum: {{ include (print $.Template.BasePath "/cilium-configmap.yaml") . | sha256sum | quote }}
-{{- end }}
-        # This annotation plus the CriticalAddonsOnly toleration makes
-        # cilium to be a critical pod in the cluster, which ensures cilium
-        # gets priority scheduling.
-        # https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/
-        scheduler.alpha.kubernetes.io/critical-pod: ""
-{{- with .Values.podAnnotations }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        k8s-app: cilium
-{{- if .Values.keepDeprecatedLabels }}
-        kubernetes.io/cluster-service: "true"
-{{- end }}
-{{- with .Values.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-{{- if .Values.affinity }}
-      affinity:
-{{ toYaml .Values.affinity | indent 8 }}
-{{- end }}
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-{{ toYaml .Values.imagePullSecrets | indent 6 }}
-{{- end }}
-      containers:
-{{- if .Values.sleepAfterInit }}
-      - command: [ "/bin/bash", "-c", "--" ]
-        args: [ "while true; do sleep 30; done;" ]
-        livenessProbe:
-          exec:
-            command:
-            - "true"
-        readinessProbe:
-          exec:
-            command:
-            - "true"
-{{- else }}
-      - args:
-        - --config-dir=/tmp/cilium/config-map
-{{- with .Values.extraArgs }}
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-        command:
-        - cilium-agent
-{{- if semverCompare ">=1.20-0" $k8sVersion }}
-        startupProbe:
-          httpGet:
-{{- if .Values.ipv4.enabled }}
-            host: '127.0.0.1'
-{{- else }}
-            host: '::1'
-{{- end }}
-            path: /healthz
-            port: {{ .Values.healthPort }}
-            scheme: HTTP
-            httpHeaders:
-            - name: "brief"
-              value: "true"
-          failureThreshold: {{ .Values.startupProbe.failureThreshold }}
-          periodSeconds: {{ .Values.startupProbe.periodSeconds }}
-          successThreshold: 1
-{{- end }}
-        livenessProbe:
-{{- if or .Values.keepDeprecatedProbes (eq $defaultKeepDeprecatedProbes "true") }}
-          exec:
-            command:
-            - cilium
-            - status
-            - --brief
-{{- else }}
-          httpGet:
-{{- if .Values.ipv4.enabled }}
-            host: '127.0.0.1'
-{{- else }}
-            host: '::1'
-{{- end }}
-            path: /healthz
-            port: {{ .Values.healthPort }}
-            scheme: HTTP
-            httpHeaders:
-            - name: "brief"
-              value: "true"
-{{- end }}
-          failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
-{{- if semverCompare "<1.20-0" $k8sVersion }}
-          # The initial delay for the liveness probe is intentionally large to
-          # avoid an endless kill & restart cycle if in the event that the initial
-          # bootstrapping takes longer than expected.
-          # Starting from Kubernetes 1.20, we are using startupProbe instead
-          # of this field.
-          initialDelaySeconds: 120
-{{- end }}
-          periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
-          successThreshold: 1
-          timeoutSeconds: 5
-        readinessProbe:
-{{- if or .Values.keepDeprecatedProbes (eq $defaultKeepDeprecatedProbes "true") }}
-          exec:
-            command:
-            - cilium
-            - status
-            - --brief
-{{- else }}
-          httpGet:
-{{- if .Values.ipv4.enabled }}
-            host: '127.0.0.1'
-{{- else }}
-            host: '::1'
-{{- end }}
-            path: /healthz
-            port: {{ .Values.healthPort }}
-            scheme: HTTP
-            httpHeaders:
-            - name: "brief"
-              value: "true"
-{{- end }}
-          failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
-{{- if semverCompare "<1.20-0" $k8sVersion }}
-          initialDelaySeconds: 5
-{{- end }}
-          periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
-          successThreshold: 1
-          timeoutSeconds: 5
-{{- end }}
-        env:
-        - name: K8S_NODE_NAME
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: spec.nodeName
-        - name: CILIUM_K8S_NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        - name: CILIUM_CLUSTERMESH_CONFIG
-          value: /var/lib/cilium/clustermesh/
-        - name: CILIUM_CNI_CHAINING_MODE
-          valueFrom:
-            configMapKeyRef:
-              key: cni-chaining-mode
-              name: cilium-config
-              optional: true
-        - name: CILIUM_CUSTOM_CNI_CONF
-          valueFrom:
-            configMapKeyRef:
-              key: custom-cni-conf
-              name: cilium-config
-              optional: true
-{{- if .Values.k8sServiceHost }}
-        - name: KUBERNETES_SERVICE_HOST
-          value: {{ .Values.k8sServiceHost | quote }}
-{{- end }}
-{{- if .Values.k8sServicePort }}
-        - name: KUBERNETES_SERVICE_PORT
-          value: {{ .Values.k8sServicePort | quote }}
-{{- end }}
-{{- with .Values.extraEnv }}
-{{ toYaml . | trim | indent 8 }}
-{{- end }}
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}{{ if .Values.image.useDigest }}@{{ .Values.image.digest }}{{ end }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-{{- if .Values.cni.install }}
-        lifecycle:
-          postStart:
-            exec:
-              command:
-              - "/cni-install.sh"
-              - "--enable-debug={{- if .Values.debug.enabled }}true{{- else }}false{{- end }}"
-              - "--cni-exclusive={{- if .Values.cni.exclusive }}true{{- else }}false{{- end }}"
-          preStop:
-            exec:
-              command:
-              - /cni-uninstall.sh
-{{- end }}
-{{- if .Values.resources }}
-        resources:
-          {{- toYaml .Values.resources | trim | nindent 10 }}
-{{- end }}
-        name: cilium-agent
-{{- if or .Values.prometheus.enabled .Values.hubble.metrics.enabled }}
-        ports:
-{{- if .Values.prometheus.enabled }}
-        - containerPort: {{ .Values.prometheus.port }}
-          hostPort: {{ .Values.prometheus.port }}
-          name: prometheus
-          protocol: TCP
-{{- if .Values.proxy.prometheus.enabled }}          
-        - containerPort: {{ .Values.proxy.prometheus.port }}
-          hostPort: {{ .Values.proxy.prometheus.port }}
-          name: envoy-metrics
-          protocol: TCP
-{{- end }}
-{{- end }}
-{{- if .Values.hubble.metrics.enabled }}
-        - containerPort: {{ .Values.hubble.metrics.port }}
-          hostPort: {{ .Values.hubble.metrics.port }}
-          name: hubble-metrics
-          protocol: TCP
-{{- end }}
-{{- end }}
-        securityContext:
-          capabilities:
-            add:
-            - NET_ADMIN
-            - SYS_MODULE
-          privileged: true
-        volumeMounts:
-{{- /* CRI-O already mounts the BPF filesystem */ -}}
-{{- if not (eq .Values.containerRuntime.integration "crio") }}
-        - mountPath: /sys/fs/bpf
-          mountPropagation: Bidirectional
-          name: bpf-maps
-{{- end }}
-{{- if not (contains "/run/cilium/cgroupv2" .Values.cgroup.hostRoot) }}
-        # Check for duplicate mounts before mounting
-        - mountPath: {{ .Values.cgroup.hostRoot }}
-          name: cilium-cgroup
-{{- end}}
-        - mountPath: /var/run/cilium
-          name: cilium-run
-        - mountPath: /host/opt/cni/bin
-          name: cni-path
-        - mountPath: {{ .Values.cni.hostConfDirMountPath }}
-          name: etc-cni-netd
-{{- if .Values.etcd.enabled }}
-        - mountPath: /var/lib/etcd-config
-          name: etcd-config-path
-          readOnly: true
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-        - mountPath: /var/lib/etcd-secrets
-          name: etcd-secrets
-          readOnly: true
-{{- end }}
-{{- end }}
-        - mountPath: /var/lib/cilium/clustermesh
-          name: clustermesh-secrets
-          readOnly: true
-        - mountPath: /tmp/cilium/config-map
-          name: cilium-config-path
-          readOnly: true
-{{- if .Values.ipMasqAgent.enabled }}
-        - mountPath: /etc/config
-          name: ip-masq-agent
-          readOnly: true
-{{- end }}
-{{- if .Values.cni.configMap }}
-        - mountPath: {{ .Values.cni.confFileMountPath }}
-          name: cni-configuration
-          readOnly: true
-{{- end }}
-          # Needed to be able to load kernel modules
-        - mountPath: /lib/modules
-          name: lib-modules
-          readOnly: true
-        - mountPath: /run/xtables.lock
-          name: xtables-lock
-{{- if and ( .Values.encryption.enabled ) ( eq .Values.encryption.type "ipsec" ) }}
-  {{- if .Values.encryption.ipsec.mountPath }}
-        - mountPath: {{ .Values.encryption.ipsec.mountPath }}
-  {{- else }}
-        - mountPath: {{ .Values.encryption.mountPath }}
-  {{- end }}
-          name: cilium-ipsec-secrets
-{{- end }}
-{{- if .Values.kubeConfigPath }}
-        - mountPath: {{ .Values.kubeConfigPath }}
-          name: kube-config
-          readOnly: true
-{{- end }}
-{{- if .Values.bgp.enabled }}
-        - mountPath: /var/lib/cilium/bgp
-          name: bgp-config-path
-          readOnly: true
-{{- end }}
-{{- if and (.Values.hubble.enabled) (hasKey .Values.hubble "listenAddress") (.Values.hubble.tls.enabled) }}
-        - mountPath: /var/lib/cilium/tls/hubble
-          name: hubble-tls
-          readOnly: true
-{{- end }}
-{{- range .Values.extraHostPathMounts }}
-        - mountPath: {{ .mountPath }}
-          name: {{ .name }}
-          readOnly: {{ .readOnly }}
-{{- if .mountPropagation }}
-          mountPropagation: {{ .mountPropagation }}
-{{- end }}
-{{- end }}
-{{- if .Values.monitor.enabled }}
-      - name: cilium-monitor
-        command: ["cilium"]
-        args:
-        - monitor
-{{- range $type := .Values.monitor.eventTypes }}
-        - --type={{ $type }}
-{{- end }}
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}{{ if .Values.image.useDigest }}@{{ .Values.image.digest }}{{ end }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-        volumeMounts:
-        - mountPath: /var/run/cilium
-          name: cilium-run
-{{- if .Values.monitor.resources }}
-        resources:
-          {{- toYaml .Values.monitor.resources | trim | nindent 10 }}
-{{- end }}
-{{- end }}
-{{- if (and .Values.etcd.managed (not .Values.etcd.k8sService)) }}
-      # In managed etcd mode, Cilium must be able to resolve the DNS name of
-      # the etcd service
-      dnsPolicy: ClusterFirstWithHostNet
-{{- end }}
-      hostNetwork: true
-      initContainers:
-{{- if .Values.cgroup.autoMount.enabled }}
-      # Required to mount cgroup2 filesystem on the underlying Kubernetes node.
-      # We use nsenter command with host's cgroup and mount namespaces enabled.
-      - name: mount-cgroup
-        env:
-          - name: CGROUP_ROOT
-            value: {{ .Values.cgroup.hostRoot }}
-          - name: BIN_PATH
-            value: {{ .Values.cni.binPath }}
-        command:
-          - sh
-          - -c
-          # The statically linked Go program binary is invoked to avoid any
-          # dependency on utilities like sh and mount that can be missing on certain
-          # distros installed on the underlying host. Copy the binary to the
-          # same directory where we install cilium cni plugin so that exec permissions
-          # are available.
-          - 'cp /usr/bin/cilium-mount /hostbin/cilium-mount && nsenter --cgroup=/hostproc/1/ns/cgroup --mount=/hostproc/1/ns/mnt "${BIN_PATH}/cilium-mount" $CGROUP_ROOT; rm /hostbin/cilium-mount'
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}{{ if .Values.image.useDigest }}@{{ .Values.image.digest }}{{ end }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-        volumeMounts:
-          - mountPath: /hostproc
-            name: hostproc
-          - mountPath: /hostbin
-            name: cni-path
-        securityContext:
-          privileged: true
-{{- end }}
-{{- if and .Values.nodeinit.enabled (not (eq .Values.nodeinit.bootstrapFile "")) }}
-      - name: wait-for-node-init
-        command: ['sh', '-c', 'until stat {{ .Values.nodeinit.bootstrapFile }} > /dev/null 2>&1; do echo "Waiting on node-init to run..."; sleep 1; done']
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}{{ if .Values.image.useDigest }}@{{ .Values.image.digest }}{{ end }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-        volumeMounts:
-        - mountPath: {{ .Values.nodeinit.bootstrapFile }}
-          name: cilium-bootstrap-file
-{{- end }}
-      - command:
-        - /init-container.sh
-        env:
-        - name: CILIUM_ALL_STATE
-          valueFrom:
-            configMapKeyRef:
-              key: clean-cilium-state
-              name: cilium-config
-              optional: true
-        - name: CILIUM_BPF_STATE
-          valueFrom:
-            configMapKeyRef:
-              key: clean-cilium-bpf-state
-              name: cilium-config
-              optional: true
-{{- if .Values.k8sServiceHost }}
-        - name: KUBERNETES_SERVICE_HOST
-          value: {{ .Values.k8sServiceHost | quote }}
-{{- end }}
-{{- if .Values.k8sServicePort }}
-        - name: KUBERNETES_SERVICE_PORT
-          value: {{ .Values.k8sServicePort | quote }}
-{{- end }}
-{{- if .Values.extraEnv }}
-{{ toYaml .Values.extraEnv | indent 8 }}
-{{- end }}
-        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}{{ if .Values.image.useDigest }}@{{ .Values.image.digest }}{{ end }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy }}
-        name: clean-cilium-state
-        securityContext:
-          capabilities:
-            add:
-            - NET_ADMIN
-          privileged: true
-        volumeMounts:
-{{- /* CRI-O already mounts the BPF filesystem */ -}}
-{{- if not (eq .Values.containerRuntime.integration "crio") }}
-        - mountPath: /sys/fs/bpf
-          name: bpf-maps
-{{- end }}
-{{- if .Values.cgroup.autoMount.enabled }}
-          # Required to mount cgroup filesystem from the host to cilium agent pod
-        - mountPath: {{ .Values.cgroup.hostRoot }}
-          name: cilium-cgroup
-          mountPropagation: HostToContainer
-{{-  else }}
-          # Required to mount cgroup filesystem from the host to cilium agent pod
-        - mountPath: {{ .Values.cgroup.hostRoot }}
-          name: cilium-cgroup
-          mountPropagation: HostToContainer
-{{- end }}
-        - mountPath: /var/run/cilium
-          name: cilium-run
-{{- if .Values.nodeinit.resources }}
-        resources:
-          {{- toYaml .Values.nodeinit.resources | trim | nindent 10 }}
-{{- end }}
-      restartPolicy: Always
-{{- if and (or (and (eq .Release.Namespace "kube-system") (gt $k8sMinor "10")) (ge $k8sMinor "17") (gt $k8sMajor "1")) .Values.enableCriticalPriorityClass }}
-      priorityClassName: system-node-critical
-{{- end }}
-      serviceAccount: {{ .Values.serviceAccounts.cilium.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.cilium.name | quote }}
-      terminationGracePeriodSeconds: 1
-{{- with .Values.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 6 }}
-{{- end }}
-      volumes:
-        # To keep state between restarts / upgrades
-      - hostPath:
-          path: {{ .Values.daemon.runPath }}
-          type: DirectoryOrCreate
-        name: cilium-run
-{{- /* CRI-O already mounts the BPF filesystem */ -}}
-{{- if not (eq .Values.containerRuntime.integration "crio") }}
-        # To keep state between restarts / upgrades for bpf maps
-      - hostPath:
-          path: /sys/fs/bpf
-          type: DirectoryOrCreate
-        name: bpf-maps
-{{- end }}
-{{- if .Values.cgroup.autoMount.enabled }}
-      # To mount cgroup2 filesystem on the host
-      - hostPath:
-          path: /proc
-          type: Directory
-        name: hostproc
-{{- end }}
-      # To keep state between restarts / upgrades for cgroup2 filesystem
-      - hostPath:
-          path: {{ .Values.cgroup.hostRoot}}
-          type: DirectoryOrCreate
-        name: cilium-cgroup
-      # To install cilium cni plugin in the host
-      - hostPath:
-          path:  {{ .Values.cni.binPath }}
-          type: DirectoryOrCreate
-        name: cni-path
-        # To install cilium cni configuration in the host
-      - hostPath:
-          path: {{ .Values.cni.confPath }}
-          type: DirectoryOrCreate
-        name: etc-cni-netd
-        # To be able to load kernel modules
-      - hostPath:
-          path: /lib/modules
-        name: lib-modules
-        # To access iptables concurrently with other processes (e.g. kube-proxy)
-      - hostPath:
-          path: /run/xtables.lock
-          type: FileOrCreate
-        name: xtables-lock
-{{- if .Values.kubeConfigPath }}
-      - hostPath:
-          path: {{ .Values.kubeConfigPath }}
-          type: FileOrCreate
-        name: kube-config
-{{- end }}
-{{- if and .Values.nodeinit.enabled (not (eq .Values.nodeinit.bootstrapFile "")) }}
-      - hostPath:
-          path: {{ .Values.nodeinit.bootstrapFile }}
-          type: FileOrCreate
-        name: cilium-bootstrap-file
-{{- end }}
-{{- range .Values.extraHostPathMounts }}
-      - name: {{ .name }}
-        hostPath:
-          path: {{ .hostPath }}
-{{- if .hostPathType }}
-          type: {{ .hostPathType }}
-{{- end }}
-{{- end }}
-{{- if .Values.etcd.enabled }}
-        # To read the etcd config stored in config maps
-      - configMap:
-          defaultMode: 420
-          items:
-          - key: etcd-config
-            path: etcd.config
-          name: cilium-config
-        name: etcd-config-path
-        # To read the k8s etcd secrets in case the user might want to use TLS
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-      - name: etcd-secrets
-        secret:
-          defaultMode: 420
-          optional: true
-          secretName: cilium-etcd-secrets
-{{- end }}
-{{- end }}
-        # To read the clustermesh configuration
-      - name: clustermesh-secrets
-        secret:
-          defaultMode: 420
-          optional: true
-          secretName: cilium-clustermesh
-        # To read the configuration from the config map
-      - configMap:
-          name: cilium-config
-        name: cilium-config-path
-{{- if and .Values.ipMasqAgent .Values.ipMasqAgent.enabled }}
-      - configMap:
-          name: ip-masq-agent
-          optional: true
-          items:
-          - key: config
-            path: ip-masq-agent
-        name: ip-masq-agent
-{{- end }}
-{{- if and ( .Values.encryption.enabled ) ( eq .Values.encryption.type "ipsec" ) }}
-      - name: cilium-ipsec-secrets
-        secret:
-  {{- if .Values.encryption.ipsec.secretName }}
-          secretName: {{ .Values.encryption.ipsec.secretName }}
-  {{- else }}
-          secretName: {{ .Values.encryption.secretName }}
-  {{- end }}
-{{- end }}
-{{- if .Values.cni.configMap }}
-      - name: cni-configuration
-        configMap:
-          name: {{ .Values.cni.configMap }}
-{{- end }}
-{{- if .Values.bgp.enabled }}
-      - configMap:
-          name: bgp-config
-        name: bgp-config-path
-{{- end }}
-{{- if and .Values.hubble.enabled .Values.hubble.tls.enabled (hasKey .Values.hubble "listenAddress") }}
-      - name: hubble-tls
-        projected:
-          sources:
-          - secret:
-              name: hubble-server-certs
-              items:
-                - key: ca.crt
-                  path: client-ca.crt
-                - key: tls.crt
-                  path: server.crt
-                - key: tls.key
-                  path: server.key
-              optional: true
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-agent-service.yaml b/charts/cilium/templates/cilium-agent-service.yaml
deleted file mode 100644
index 9f1555e..0000000
--- a/charts/cilium/templates/cilium-agent-service.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-{{- if and (.Values.agent) (not .Values.preflight.enabled) (.Values.prometheus.enabled) (.Values.prometheus.serviceMonitor.enabled) }}
-kind: Service
-apiVersion: v1
-metadata:
-  name: cilium-agent
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: cilium
-spec:
-  clusterIP: None
-  type: ClusterIP
-  ports:
-  - name: metrics
-    port: {{ .Values.prometheus.port }}
-    protocol: TCP
-    targetPort: prometheus
-  - name: envoy-metrics
-    port: {{ .Values.proxy.prometheus.port }}
-    protocol: TCP
-    targetPort: envoy-metrics
-  selector:
-    k8s-app: cilium
-{{- else if and (.Values.prometheus.enabled) (.Values.proxy.prometheus.enabled) }}
-kind: Service
-apiVersion: v1
-metadata:
-  name: cilium-agent
-  namespace: {{ .Release.Namespace }}
-  annotations:
-    prometheus.io/scrape: 'true'
-    prometheus.io/port: {{ .Values.proxy.prometheus.port | quote }}
-  labels:
-    k8s-app: cilium
-spec:
-  clusterIP: None
-  type: ClusterIP
-  ports:
-  - name: envoy-metrics
-    port: {{ .Values.proxy.prometheus.port }}
-    protocol: TCP
-    targetPort: envoy-metrics
-  selector:
-    k8s-app: cilium
-{{- end }}
-{{- if and .Values.hubble.metrics.enabled }}
----
-kind: Service
-apiVersion: v1
-metadata:
-  name: hubble-metrics
-  namespace: {{ .Release.Namespace }}
-  annotations:
-    prometheus.io/scrape: 'true'
-    prometheus.io/port: {{ .Values.hubble.metrics.port | quote }}
-  labels:
-    k8s-app: hubble
-spec:
-  clusterIP: None
-  type: ClusterIP
-  ports:
-  - name: hubble-metrics
-    port: {{ .Values.hubble.metrics.port }}
-    protocol: TCP
-    targetPort: hubble-metrics
-  selector:
-    k8s-app: cilium
-{{- end }}
diff --git a/charts/cilium/templates/cilium-agent-serviceaccount.yaml b/charts/cilium/templates/cilium-agent-serviceaccount.yaml
deleted file mode 100644
index ba0141f..0000000
--- a/charts/cilium/templates/cilium-agent-serviceaccount.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if and (.Values.agent) (.Values.serviceAccounts.cilium.create) (not .Values.preflight.enabled) }}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.cilium.name | quote }}
-  namespace: {{ .Release.Namespace }}
-  {{- if .Values.serviceAccounts.cilium.annotations }}
-  annotations:
-{{ toYaml .Values.serviceAccounts.cilium.annotations | indent 4 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-agent-servicemonitor.yaml b/charts/cilium/templates/cilium-agent-servicemonitor.yaml
deleted file mode 100644
index b035e4e..0000000
--- a/charts/cilium/templates/cilium-agent-servicemonitor.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-{{- if and (.Values.agent) (not .Values.preflight.enabled) (.Values.prometheus.enabled) (.Values.prometheus.serviceMonitor.enabled) }}
----
-apiVersion: monitoring.coreos.com/v1
-kind: ServiceMonitor
-metadata:
-  name: cilium-agent
-  {{- if .Values.prometheus.serviceMonitor.namespace }}
-  namespace: {{ .Values.prometheus.serviceMonitor.namespace }}
-  {{- else }}
-  namespace: {{ .Release.Namespace }}
-  {{- end }}
-  labels:
-    {{- with .Values.prometheus.serviceMonitor.labels }}
-    {{- toYaml . | nindent 4 }}
-    {{- end }}
-spec:
-  selector:
-    matchLabels:
-      k8s-app: cilium
-  namespaceSelector:
-    matchNames:
-    - {{ .Release.Namespace }}
-  endpoints:
-  - port: metrics
-    interval: 10s
-    honorLabels: true
-    path: /metrics
-  targetLabels:
-  - k8s-app
-{{- end }}
-{{- if and .Values.hubble.metrics.enabled (.Values.hubble.metrics.serviceMonitor.enabled) }}
----
-apiVersion: monitoring.coreos.com/v1
-kind: ServiceMonitor
-metadata:
-  name: hubble
-  {{- if .Values.prometheus.serviceMonitor.namespace }}
-  namespace: {{ .Values.prometheus.serviceMonitor.namespace }}
-  {{- else }}
-  namespace: {{ .Release.Namespace }}
-  {{- end }}
-  labels:
-    {{- with .Values.hubble.metrics.serviceMonitor.labels }}
-    {{- toYaml . | nindent 4 }}
-    {{- end }}
-spec:
-  selector:
-    matchLabels:
-      k8s-app: hubble
-  namespaceSelector:
-    matchNames:
-    - {{ .Release.Namespace }}
-  endpoints:
-  - port: hubble-metrics
-    interval: 10s
-    honorLabels: true
-    path: /metrics
-    relabelings:
-    - replacement: ${1}
-      sourceLabels:
-      - __meta_kubernetes_pod_node_name
-      targetLabel: node
-{{- end }}
diff --git a/charts/cilium/templates/cilium-configmap.yaml b/charts/cilium/templates/cilium-configmap.yaml
deleted file mode 100644
index 3fd95e0..0000000
--- a/charts/cilium/templates/cilium-configmap.yaml
+++ /dev/null
@@ -1,748 +0,0 @@
-{{- if and (.Values.agent) (not .Values.preflight.enabled) }}
-{{- /*  Default values with backwards compatibility */ -}}
-{{- $defaultEnableCnpStatusUpdates := "true" -}}
-{{- $defaultBpfMapDynamicSizeRatio := 0.0 -}}
-{{- $defaultBpfMasquerade := "false" -}}
-{{- $defaultBpfClockProbe := "false" -}}
-{{- $defaultBpfTProxy := "false" -}}
-{{- $defaultIPAM := "cluster-pool" -}}
-{{- $defaultSessionAffinity := "false" -}}
-{{- $defaultOperatorApiServeAddr := "localhost:9234" -}}
-{{- $defaultBpfCtTcpMax := 524288 -}}
-{{- $defaultBpfCtAnyMax := 262144 -}}
-{{- $enableIdentityMark := "true" -}}
-{{- $fragmentTracking := "true" -}}
-{{- $crdWaitTimeout := "5m" -}}
-{{- $defaultKubeProxyReplacement := "probe" -}}
-
-{{- /* Default values when 1.8 was initially deployed */ -}}
-{{- if semverCompare ">=1.8" (default "1.8" .Values.upgradeCompatibility) -}}
-{{- $defaultEnableCnpStatusUpdates = "false" -}}
-{{- $defaultBpfMapDynamicSizeRatio = 0.0025 -}}
-{{- $defaultBpfMasquerade = "true" -}}
-{{- $defaultBpfClockProbe = "true" -}}
-{{- $defaultIPAM = "cluster-pool" -}}
-{{- $defaultSessionAffinity = "true" -}}
-{{- if .Values.ipv4.enabled }}
-{{- $defaultOperatorApiServeAddr = "127.0.0.1:9234" -}}
-{{- else -}}
-{{- $defaultOperatorApiServeAddr = "[::1]:9234" -}}
-{{- end }}
-{{- $defaultBpfCtTcpMax = 0 -}}
-{{- $defaultBpfCtAnyMax = 0 -}}
-{{- end -}}
-
-{{- /* Default values when 1.10 was initially deployed */ -}}
-{{- if semverCompare ">=1.10" (default "1.10" .Values.upgradeCompatibility) -}}
-  {{- $defaultKubeProxyReplacement = "disabled" -}}
-  {{- /* Needs to be explicitly disabled because it was enabled on all versions >=v1.8 above. */ -}}
-  {{- $defaultBpfMasquerade = "false" -}}
-{{- end -}}
-
-{{- $ipam := (coalesce .Values.ipam.mode $defaultIPAM) -}}
-{{- $bpfCtTcpMax := (coalesce .Values.bpf.ctTcpMax $defaultBpfCtTcpMax) -}}
-{{- $bpfCtAnyMax := (coalesce .Values.bpf.ctAnyMax $defaultBpfCtAnyMax) -}}
-{{- $kubeProxyReplacement := (coalesce .Values.kubeProxyReplacement $defaultKubeProxyReplacement) -}}
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: cilium-config
-  namespace: {{ .Release.Namespace }}
-data:
-{{- if .Values.etcd.enabled }}
-  # The kvstore configuration is used to enable use of a kvstore for state
-  # storage. This can either be provided with an external kvstore or with the
-  # help of cilium-etcd-operator which operates an etcd cluster automatically.
-  kvstore: etcd
-{{- if .Values.etcd.k8sService }}
-  kvstore-opt: '{"etcd.config": "/var/lib/etcd-config/etcd.config", "etcd.operator": "true"}'
-{{- else }}
-  kvstore-opt: '{"etcd.config": "/var/lib/etcd-config/etcd.config"}'
-{{- end }}
-
-  # This etcd-config contains the etcd endpoints of your cluster. If you use
-  # TLS please make sure you follow the tutorial in https://cilium.link/etcd-config
-  etcd-config: |-
-    ---
-    endpoints:
-{{- if .Values.etcd.managed }}
-      - https://cilium-etcd-client.{{ .Release.Namespace }}.svc:2379
-{{- else }}
-{{- range .Values.etcd.endpoints }}
-      - {{ . }}
-{{- end }}
-{{- end }}
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-    trusted-ca-file: '/var/lib/etcd-secrets/etcd-client-ca.crt'
-    key-file: '/var/lib/etcd-secrets/etcd-client.key'
-    cert-file: '/var/lib/etcd-secrets/etcd-client.crt'
-{{- end }}
-{{- end }}
-
-{{- if hasKey .Values "conntrackGCInterval" }}
-  conntrack-gc-interval: {{ .Values.conntrackGCInterval | quote }}
-{{- end }}
-
-{{- if hasKey .Values "disableEnvoyVersionCheck" }}
-  disable-envoy-version-check: {{ .Values.disableEnvoyVersionCheck | quote }}
-{{- end }}
-
-  # Identity allocation mode selects how identities are shared between cilium
-  # nodes by setting how they are stored. The options are "crd" or "kvstore".
-  # - "crd" stores identities in kubernetes as CRDs (custom resource definition).
-  #   These can be queried with:
-  #     kubectl get ciliumid
-  # - "kvstore" stores identities in a kvstore, etcd or consul, that is
-  #   configured below. Cilium versions before 1.6 supported only the kvstore
-  #   backend. Upgrades from these older cilium versions should continue using
-  #   the kvstore by commenting out the identity-allocation-mode below, or
-  #   setting it to "kvstore".
-  identity-allocation-mode: {{ .Values.identityAllocationMode }}
-{{- if hasKey .Values "identityHeartbeatTimeout" }}
-  identity-heartbeat-timeout: "{{ .Values.identityHeartbeatTimeout }}"
-{{- end }}
-{{- if hasKey .Values "identityGCInterval" }}
-  identity-gc-interval: "{{ .Values.identityGCInterval }}"
-{{- end }}
-{{- if hasKey .Values.operator "endpointGCInterval" }}
-  cilium-endpoint-gc-interval: "{{ .Values.operator.endpointGCInterval }}"
-{{- end }}
-
-{{- if hasKey .Values "identityChangeGracePeriod" }}
-  # identity-change-grace-period is the grace period that needs to pass
-  # before an endpoint that has changed its identity will start using
-  # that new identity. During the grace period, the new identity has
-  # already been allocated and other nodes in the cluster have a chance
-  # to whitelist the new upcoming identity of the endpoint.
-  identity-change-grace-period: {{ default "5s" .Values.identityChangeGracePeriod | quote }}
-{{- end }}
-
-{{- if hasKey .Values "labels" }}
-  # To include or exclude matched resources from cilium identity evaluation
-  labels: {{ .Values.labels | quote }}
-{{- end }}
-
-  # If you want to run cilium in debug mode change this value to true
-  debug: {{ .Values.debug.enabled | quote }}
-
-{{- if hasKey .Values.debug "verbose" }}
-  debug-verbose: "{{ .Values.debug.verbose }}"
-{{- end }}
-
-{{- if ne (int .Values.healthPort) 9876 }}
-  # Set the TCP port for the agent health status API. This is not the port used
-  # for cilium-health.
-  agent-health-port: "{{ .Values.healthPort }}"
-{{- end }}
-{{- if hasKey .Values "policyEnforcementMode" }}
-  # The agent can be put into the following three policy enforcement modes
-  # default, always and never.
-  # https://docs.cilium.io/en/latest/policy/intro/#policy-enforcement-modes
-  enable-policy: "{{ lower .Values.policyEnforcementMode }}"
-{{- end }}
-
-{{- if .Values.prometheus.enabled }}
-  # If you want metrics enabled in all of your Cilium agents, set the port for
-  # which the Cilium agents will have their metrics exposed.
-  # This option deprecates the "prometheus-serve-addr" in the
-  # "cilium-metrics-config" ConfigMap
-  # NOTE that this will open the port on ALL nodes where Cilium pods are
-  # scheduled.
-  prometheus-serve-addr: ":{{ .Values.prometheus.port }}"
-  # Port to expose Envoy metrics (e.g. "9095"). Envoy metrics listener will be disabled if this
-  # field is not set.
-  {{- if .Values.proxy.prometheus.enabled }}
-  proxy-prometheus-port: "{{ .Values.proxy.prometheus.port }}"
-  {{- end }}
-  {{- if .Values.prometheus.metrics }}
-  # Metrics that should be enabled or disabled from the default metric
-  # list. (+metric_foo to enable metric_foo , -metric_bar to disable
-  # metric_bar).
-  metrics: {{- range .Values.prometheus.metrics }}
-    {{ . }}
-  {{- end }}
-  {{- end }}
-{{- end }}
-
-{{- if .Values.operator.prometheus.enabled }}
-  # If you want metrics enabled in cilium-operator, set the port for
-  # which the Cilium Operator will have their metrics exposed.
-  # NOTE that this will open the port on the nodes where Cilium operator pod
-  # is scheduled.
-  operator-prometheus-serve-addr: ":{{ .Values.operator.prometheus.port }}"
-  enable-metrics: "true"
-{{- end }}
-
-{{- if .Values.operator.skipCRDCreation }}
-  skip-crd-creation: "true"
-{{- end }}
-
-  # Enable IPv4 addressing. If enabled, all endpoints are allocated an IPv4
-  # address.
-  enable-ipv4: {{ .Values.ipv4.enabled | quote }}
-
-  # Enable IPv6 addressing. If enabled, all endpoints are allocated an IPv6
-  # address.
-  enable-ipv6: {{ .Values.ipv6.enabled | quote }}
-
-{{- if .Values.cleanState }}
-  # If a serious issue occurs during Cilium startup, this
-  # invasive option may be set to true to remove all persistent
-  # state. Endpoints will not be restored using knowledge from a
-  # prior Cilium run, so they may receive new IP addresses upon
-  # restart. This also triggers clean-cilium-bpf-state.
-  clean-cilium-state: "true"
-{{- end }}
-
-{{- if .Values.cleanBpfState }}
-  # If you want to clean cilium BPF state, set this to true;
-  # Removes all BPF maps from the filesystem. Upon restart,
-  # endpoints are restored with the same IP addresses, however
-  # any ongoing connections may be disrupted briefly.
-  # Loadbalancing decisions will be reset, so any ongoing
-  # connections via a service may be loadbalanced to a different
-  # backend after restart.
-  clean-cilium-bpf-state: "true"
-{{- end }}
-
-{{- if hasKey .Values.cni "customConf" }}
-  # Users who wish to specify their own custom CNI configuration file must set
-  # custom-cni-conf to "true", otherwise Cilium may overwrite the configuration.
-  custom-cni-conf: "{{ .Values.cni.customConf }}"
-{{- end }}
-
-{{- if hasKey .Values "bpfClockProbe" }}
-  enable-bpf-clock-probe: {{ .Values.bpfClockProbe | quote }}
-{{- else if eq $defaultBpfClockProbe "true" }}
-  enable-bpf-clock-probe: {{ $defaultBpfClockProbe | quote }}
-{{- end }}
-
-{{- if hasKey .Values.bpf "tproxy" }}
-  enable-bpf-tproxy: {{ .Values.bpf.tproxy | quote }}
-{{- else if eq $defaultBpfTProxy "true" }}
-  enable-bpf-tproxy: {{ $defaultBpfTProxy | quote }}
-{{- end }}
-  # If you want cilium monitor to aggregate tracing for packets, set this level
-  # to "low", "medium", or "maximum". The higher the level, the less packets
-  # that will be seen in monitor output.
-  monitor-aggregation: {{ .Values.bpf.monitorAggregation }}
-
-  # The monitor aggregation interval governs the typical time between monitor
-  # notification events for each allowed connection.
-  #
-  # Only effective when monitor aggregation is set to "medium" or higher.
-  monitor-aggregation-interval: {{ .Values.bpf.monitorInterval }}
-
-  # The monitor aggregation flags determine which TCP flags which, upon the
-  # first observation, cause monitor notifications to be generated.
-  #
-  # Only effective when monitor aggregation is set to "medium" or higher.
-  monitor-aggregation-flags: {{ .Values.bpf.monitorFlags }}
-
-
-
-
-{{- if hasKey .Values.bpf "mapDynamicSizeRatio" }}
-  # Specifies the ratio (0.0-1.0) of total system memory to use for dynamic
-  # sizing of the TCP CT, non-TCP CT, NAT and policy BPF maps.
-  bpf-map-dynamic-size-ratio: {{ .Values.bpf.mapDynamicSizeRatio | quote }}
-{{- else if ne $defaultBpfMapDynamicSizeRatio 0.0 }}
-  # Specifies the ratio (0.0-1.0) of total system memory to use for dynamic
-  # sizing of the TCP CT, non-TCP CT, NAT and policy BPF maps.
-  bpf-map-dynamic-size-ratio: {{ $defaultBpfMapDynamicSizeRatio | quote }}
-{{- end }}
-
-{{- if hasKey .Values.bpf "hostRouting" }}
-  enable-host-legacy-routing: {{ .Values.bpf.hostRouting | quote }}
-{{- end }}
-
-{{- if or $bpfCtTcpMax $bpfCtAnyMax }}
-  # bpf-ct-global-*-max specifies the maximum number of connections
-  # supported across all endpoints, split by protocol: tcp or other. One pair
-  # of maps uses these values for IPv4 connections, and another pair of maps
-  # use these values for IPv6 connections.
-  #
-  # If these values are modified, then during the next Cilium startup the
-  # tracking of ongoing connections may be disrupted. As a result, reply
-  # packets may be dropped and the load-balancing decisions for established
-  # connections may change.
-  #
-  # For users upgrading from Cilium 1.2 or earlier, to minimize disruption
-  # during the upgrade process, set bpf-ct-global-tcp-max to 1000000.
-{{- if $bpfCtTcpMax }}
-  bpf-ct-global-tcp-max: {{ $bpfCtTcpMax | quote }}
-{{- end }}
-{{- if $bpfCtAnyMax }}
-  bpf-ct-global-any-max: {{ $bpfCtAnyMax | quote }}
-{{- end }}
-{{- end }}
-{{- if hasKey .Values.bpf "natMax" }}
-  # bpf-nat-global-max specified the maximum number of entries in the
-  # BPF NAT table.
-  bpf-nat-global-max: "{{ .Values.bpf.natMax }}"
-{{- end }}
-{{- if hasKey .Values.bpf "neighMax" }}
-  # bpf-neigh-global-max specified the maximum number of entries in the
-  # BPF neighbor table.
-  bpf-neigh-global-max: "{{ .Values.bpf.neighMax }}"
-{{- end }}
-{{- if hasKey .Values.bpf "policyMapMax" }}
-  # bpf-policy-map-max specifies the maximum number of entries in endpoint
-  # policy map (per endpoint)
-  bpf-policy-map-max: "{{ .Values.bpf.policyMapMax }}"
-{{- end }}
-{{- if hasKey .Values.bpf "lbMapMax" }}
-  # bpf-lb-map-max specifies the maximum number of entries in bpf lb service,
-  # backend and affinity maps.
-  bpf-lb-map-max: "{{ .Values.bpf.lbMapMax }}"
-{{- end }}
-  # bpf-lb-bypass-fib-lookup instructs Cilium to enable the FIB lookup bypass
-  # optimization for nodeport reverse NAT handling.
-{{- if hasKey .Values.bpf "lbBypassFIBLookup" }}
-  bpf-lb-bypass-fib-lookup: {{ .Values.bpf.lbBypassFIBLookup | quote }}
-{{- end }}
-{{- if hasKey .Values.bpf "lbExternalClusterIP" }}
-  bpf-lb-external-clusterip: {{ .Values.bpf.lbExternalClusterIP | quote }}
-{{- end }}
-
-  # Pre-allocation of map entries allows per-packet latency to be reduced, at
-  # the expense of up-front memory allocation for the entries in the maps. The
-  # default value below will minimize memory usage in the default installation;
-  # users who are sensitive to latency may consider setting this to "true".
-  #
-  # This option was introduced in Cilium 1.4. Cilium 1.3 and earlier ignore
-  # this option and behave as though it is set to "true".
-  #
-  # If this value is modified, then during the next Cilium startup the restore
-  # of existing endpoints and tracking of ongoing connections may be disrupted.
-  # As a result, reply packets may be dropped and the load-balancing decisions
-  # for established connections may change.
-  #
-  # If this option is set to "false" during an upgrade from 1.3 or earlier to
-  # 1.4 or later, then it may cause one-time disruptions during the upgrade.
-  preallocate-bpf-maps: "{{ .Values.bpf.preallocateMaps }}"
-
-  # Regular expression matching compatible Istio sidecar istio-proxy
-  # container image names
-  sidecar-istio-proxy-image: "{{ .Values.proxy.sidecarImageRegex }}"
-
-  # Name of the cluster. Only relevant when building a mesh of clusters.
-  cluster-name: {{ .Values.cluster.name }}
-
-{{- if hasKey .Values.cluster "id" }}
-  # Unique ID of the cluster. Must be unique across all conneted clusters and
-  # in the range of 1 and 255. Only relevant when building a mesh of clusters.
-  cluster-id: "{{ .Values.cluster.id }}"
-{{- end }}
-
-  # Encapsulation mode for communication between nodes
-  # Possible values:
-  #   - disabled
-  #   - vxlan (default)
-  #   - geneve
-{{- if .Values.gke.enabled }}
-  tunnel: "disabled"
-  enable-endpoint-routes: "true"
-  enable-local-node-route: "false"
-{{- else }}
-  tunnel: {{ .Values.tunnel }}
-{{- end }}
-
-{{- if .Values.eni.enabled }}
-  enable-endpoint-routes: "true"
-  auto-create-cilium-node-resource: "true"
-{{- if .Values.eni.updateEC2AdapterLimitViaAPI }}
-  update-ec2-adapter-limit-via-api: "true"
-{{- end }}
-{{- if .Values.eni.awsReleaseExcessIPs }}
-  aws-release-excess-ips: "true"
-{{- end }}
-  ec2-api-endpoint: {{ .Values.eni.ec2APIEndpoint | quote }}
-  eni-tags: {{ .Values.eni.eniTags | toRawJson | quote }}
-  subnet-ids-filter: {{ .Values.eni.subnetIDsFilter | quote }}
-  subnet-tags-filter: {{ .Values.eni.subnetTagsFilter | quote }}
-{{- end }}
-
-{{- if .Values.azure.enabled }}
-  enable-endpoint-routes: "true"
-  auto-create-cilium-node-resource: "true"
-  enable-local-node-route: "false"
-{{- if .Values.azure.userAssignedIdentityID }}
-  azure-user-assigned-identity-id: {{ .Values.azure.userAssignedIdentityID | quote }}
-{{- end }}
-{{- end }}
-
-{{- if .Values.alibabacloud.enabled }}
-  enable-endpoint-routes: "true"
-  auto-create-cilium-node-resource: "true"
-{{- end }}
-
-{{- if hasKey .Values "l7Proxy" }}
-  # Enables L7 proxy for L7 policy enforcement and visibility
-  enable-l7-proxy: {{ .Values.l7Proxy | quote }}
-{{- end }}
-
-{{- if ne .Values.cni.chainingMode "none" }}
-  # Enable chaining with another CNI plugin
-  #
-  # Supported modes:
-  #  - none
-  #  - aws-cni
-  #  - flannel
-  #  - portmap (Enables HostPort support for Cilium)
-  cni-chaining-mode: {{ .Values.cni.chainingMode }}
-
-{{- if hasKey .Values "enableIdentityMark" }}
-  enable-identity-mark: {{ .Values.enableIdentityMark | quote }}
-{{- else if (ne $enableIdentityMark "true") }}
-  enable-identity-mark: "false"
-{{- end }}
-{{- if ne .Values.cni.chainingMode "portmap" }}
-  # Disable the PodCIDR route to the cilium_host interface as it is not
-  # required. While chaining, it is the responsibility of the underlying plugin
-  # to enable routing.
-  enable-local-node-route: "false"
-{{- end }}
-{{- end }}
-
-  enable-ipv4-masquerade: {{ .Values.enableIPv4Masquerade | quote }}
-  enable-ipv6-masquerade: {{ .Values.enableIPv6Masquerade | quote }}
-
-{{- if hasKey .Values.bpf "masquerade" }}
-  enable-bpf-masquerade: {{ .Values.bpf.masquerade | quote }}
-{{- else if eq $defaultBpfMasquerade "true" }}
-  enable-bpf-masquerade: {{ $defaultBpfMasquerade | quote }}
-{{- end }}
-{{- if hasKey .Values "egressMasqueradeInterfaces" }}
-  egress-masquerade-interfaces: {{ .Values.egressMasqueradeInterfaces }}
-{{- end }}
-{{- if and .Values.ipMasqAgent .Values.ipMasqAgent.enabled }}
-  enable-ip-masq-agent: "true"
-{{- end }}
-
-{{- if .Values.encryption.enabled }}
-  {{- if eq .Values.encryption.type "ipsec" }}
-  enable-ipsec: {{ .Values.encryption.enabled | quote }}
-
-    {{- if and .Values.encryption.ipsec.mountPath .Values.encryption.ipsec.keyFile }}
-  ipsec-key-file: {{ .Values.encryption.ipsec.mountPath }}/{{ .Values.encryption.ipsec.keyFile }}
-    {{- else }}
-  ipsec-key-file: {{ .Values.encryption.mountPath }}/{{ .Values.encryption.keyFile }}
-    {{- end }}
-    {{- if .Values.encryption.ipsec.interface }}
-  encrypt-interface: {{ .Values.encryption.ipsec.interface }}
-    {{- else if .Values.encryption.interface }}
-  encrypt-interface: {{ .Values.encryption.interface }}
-    {{- end }}
-
-    {{- if .Values.encryption.nodeEncryption }}
-  encrypt-node: {{ .Values.encryption.nodeEncryption | quote }}
-    {{- end }}
-  {{- else if eq .Values.encryption.type "wireguard" }}
-  enable-wireguard: {{ .Values.encryption.enabled | quote }}
-  {{- end }}
-{{- end }}
-
-{{- if hasKey .Values "datapathMode" }}
-{{- if eq .Values.datapathMode "ipvlan" }}
-  datapath-mode: ipvlan
-  ipvlan-master-device: {{ .Values.ipvlan.masterDevice }}
-{{- end }}
-{{- end }}
-
-  enable-xt-socket-fallback: {{ .Values.enableXTSocketFallback | quote }}
-  install-iptables-rules: {{ .Values.installIptablesRules | quote }}
-{{- if or (.Values.azure.enabled) (.Values.eni.enabled) (.Values.gke.enabled) (ne .Values.cni.chainingMode "none") }}
-  install-no-conntrack-iptables-rules: "false"
-{{- else }}
-  install-no-conntrack-iptables-rules: {{ .Values.installNoConntrackIptablesRules | quote }}
-{{- end}}
-
-{{- if hasKey .Values "iptablesRandomFully" }}
-  iptables-random-fully: {{ .Values.iptablesRandomFully | quote }}
-{{- end }}
-
-{{- if hasKey .Values "iptablesLockTimeout" }}
-  iptables-lock-timeout: {{ .Values.iptablesLockTimeout | quote }}
-{{- end }}
-
-  auto-direct-node-routes: {{ .Values.autoDirectNodeRoutes | quote }}
-  enable-bandwidth-manager: {{ .Values.bandwidthManager | quote }}
-
-{{- if hasKey .Values "localRedirectPolicy" }}
-  enable-local-redirect-policy: {{ .Values.localRedirectPolicy | quote }}
-{{- end }}
-
-{{- if hasKey .Values "nativeRoutingCIDR" }}
-  native-routing-cidr: {{ .Values.nativeRoutingCIDR }}
-{{- end }}
-
-{{- if hasKey .Values "fragmentTracking" }}
-  enable-ipv4-fragment-tracking: {{ .Values.fragmentTracking | quote }}
-{{- else if (ne $fragmentTracking "true") }}
-  enable-ipv4-fragment-tracking: "false"
-{{- end }}
-
-{{- if .Values.hostFirewall }}
-  enable-host-firewall: {{ .Values.hostFirewall | quote }}
-{{- end}}
-
-{{- if hasKey .Values "devices" }}
-  # List of devices used to attach bpf_host.o (implements BPF NodePort,
-  # host-firewall and BPF masquerading)
-  devices: {{ join " " .Values.devices | quote }}
-{{- end }}
-
-  kube-proxy-replacement:  {{ $kubeProxyReplacement | quote }}
-{{- if ne $kubeProxyReplacement "disabled" }}
-  kube-proxy-replacement-healthz-bind-address: {{ default "" .Values.kubeProxyReplacementHealthzBindAddr | quote}}
-{{- end }}
-
-{{- if hasKey .Values "hostServices" }}
-{{- if .Values.hostServices.enabled }}
-  enable-host-reachable-services: {{ .Values.hostServices.enabled | quote }}
-{{- end }}
-{{- if ne .Values.hostServices.protocols "tcp,udp" }}
-  host-reachable-services-protos: {{ .Values.hostServices.protocols }}
-{{- end }}
-{{- if hasKey .Values.hostServices "hostNamespaceOnly" }}
-  bpf-lb-sock-hostns-only: {{ .Values.hostServices.hostNamespaceOnly | quote }}
-{{- end }}
-{{- end }}
-{{- if hasKey .Values "hostPort" }}
-{{- if eq $kubeProxyReplacement "partial" }}
-  enable-host-port: {{ .Values.hostPort.enabled | quote }}
-{{- end }}
-{{- end }}
-{{- if hasKey .Values "externalIPs" }}
-{{- if eq $kubeProxyReplacement "partial" }}
-  enable-external-ips: {{ .Values.externalIPs.enabled | quote }}
-{{- end }}
-{{- end }}
-{{- if hasKey .Values "nodePort" }}
-{{- if eq $kubeProxyReplacement "partial" }}
-  enable-node-port: {{ .Values.nodePort.enabled | quote }}
-{{- end }}
-{{- if hasKey .Values.nodePort "range" }}
-  node-port-range: {{ .Values.nodePort.range | quote }}
-{{- end }}
-{{- if hasKey .Values.nodePort "directRoutingDevice" }}
-  direct-routing-device: {{ .Values.nodePort.directRoutingDevice | quote }}
-{{- end }}
-{{- if hasKey .Values.nodePort "enableHealthCheck" }}
-  enable-health-check-nodeport: {{ .Values.nodePort.enableHealthCheck | quote}}
-{{- end }}
-  node-port-bind-protection: {{ .Values.nodePort.bindProtection | quote }}
-  enable-auto-protect-node-port-range: {{ .Values.nodePort.autoProtectPortRange | quote }}
-{{- end }}
-{{- if hasKey .Values "loadBalancer" }}
-{{- if .Values.loadBalancer.standalone }}
-  datapath-mode: lb-only
-{{- end }}
-{{- if hasKey .Values.loadBalancer "mode" }}
-  bpf-lb-mode: {{ .Values.loadBalancer.mode | quote }}
-{{- end }}
-{{- if hasKey .Values.loadBalancer "algorithm" }}
-  bpf-lb-algorithm: {{ .Values.loadBalancer.algorithm | quote }}
-{{- end }}
-{{- if hasKey .Values.loadBalancer "acceleration" }}
-  bpf-lb-acceleration: {{ .Values.loadBalancer.acceleration | quote }}
-{{- end }}
-{{- if hasKey .Values.loadBalancer "dsrDispatch" }}
-  bpf-lb-dsr-dispatch: {{ .Values.loadBalancer.dsrDispatch | quote }}
-{{- end }}
-
-{{- end }}
-{{- if hasKey .Values.maglev "tableSize" }}
-  bpf-lb-maglev-table-size: {{ .Values.maglev.tableSize | quote}}
-{{- end }}
-{{- if hasKey .Values.maglev "hashSeed" }}
-  bpf-lb-maglev-hash-seed: {{ .Values.maglev.hashSeed | quote}}
-{{- end }}
-{{- if .Values.sessionAffinity }}
-  enable-session-affinity: {{ .Values.sessionAffinity | quote }}
-{{- else if eq $defaultSessionAffinity "true" }}
-  enable-session-affinity: {{ $defaultSessionAffinity | quote }}
-{{- end }}
-{{- if .Values.svcSourceRangeCheck }}
-  enable-svc-source-range-check: {{ .Values.svcSourceRangeCheck | quote }}
-{{- end }}
-
-{{- if hasKey .Values "l2NeighDiscovery" }}
-{{- if hasKey .Values.l2NeighDiscovery "enabled" }}
-  enable-l2-neigh-discovery: {{ .Values.l2NeighDiscovery.enabled | quote }}
-{{- end }}
-{{- if hasKey .Values.l2NeighDiscovery "refreshPeriod" }}
-  arping-refresh-period: {{ .Values.l2NeighDiscovery.refreshPeriod | quote }}
-{{- end }}
-{{- end }}
-
-{{- if and .Values.pprof .Values.pprof.enabled }}
-  pprof: {{ .Values.pprof.enabled | quote }}
-{{- end }}
-{{- if .Values.logSystemLoad }}
-  log-system-load: {{ .Values.logSystemLoad | quote }}
-{{- end }}
-{{- if .Values.logOptions }}
-  log-opt: {{ .Values.logOptions | toJson | quote }}
-{{- end }}
-{{- if and .Values.sockops .Values.sockops.enabled }}
-  sockops-enable: {{ .Values.sockops.enabled | quote }}
-{{- end }}
-{{- if hasKey .Values.k8s "requireIPv4PodCIDR" }}
-  k8s-require-ipv4-pod-cidr: {{ .Values.k8s.requireIPv4PodCIDR | quote }}
-{{- end }}
-{{- if hasKey .Values.k8s "requireIPv6PodCIDR" }}
-  k8s-require-ipv6-pod-cidr: {{ .Values.k8s.requireIPv6PodCIDR | quote }}
-{{- end }}
-{{- if .Values.endpointStatus.enabled }}
-  endpoint-status: {{ required "endpointStatus.status required: policy, health, controllers, logs and / or state. For 2 or more options use a comma: \"policy, health\"" .Values.endpointStatus.status | quote }}
-{{- end }}
-{{- if and .Values.endpointRoutes .Values.endpointRoutes.enabled }}
-  enable-endpoint-routes: {{ .Values.endpointRoutes.enabled | quote }}
-{{- end }}
-{{- if .Values.cni.configMap }}
-  read-cni-conf: {{ .Values.cni.confFileMountPath }}/{{ .Values.cni.configMapKey }}
-  write-cni-conf-when-ready: {{ .Values.cni.hostConfDirMountPath }}/05-cilium.conflist
-{{- else if .Values.cni.readCniConf }}
-  read-cni-conf: {{ .Values.cni.readCniConf }}
-{{- end }}
-{{- if .Values.kubeConfigPath }}
-  k8s-kubeconfig-path: {{ .Values.kubeConfigPath | quote }}
-{{- end }}
-{{- if and ( .Values.endpointHealthChecking.enabled ) (or (eq .Values.cni.chainingMode "portmap") (eq .Values.cni.chainingMode "none")) }}
-  enable-endpoint-health-checking: "true"
-{{- else}}
-  # Disable health checking, when chaining mode is not set to portmap or none
-  enable-endpoint-health-checking: "false"
-{{- end }}
-{{- if hasKey .Values "healthChecking" }}
-  enable-health-checking: {{ .Values.healthChecking | quote }}
-{{- end }}
-{{- if or .Values.wellKnownIdentities.enabled .Values.etcd.managed }}
-  enable-well-known-identities: "true"
-{{- else }}
-  enable-well-known-identities: "false"
-{{- end }}
-  enable-remote-node-identity: {{ .Values.remoteNodeIdentity | quote }}
-
-{{- if hasKey .Values "synchronizeK8sNodes" }}
-  synchronize-k8s-nodes: {{ .Values.synchronizeK8sNodes | quote }}
-{{- end }}
-
-{{- if hasKey .Values "policyAuditMode" }}
-  policy-audit-mode: {{ .Values.policyAuditMode | quote }}
-{{- end }}
-
-{{- if ne $defaultOperatorApiServeAddr "localhost:9234" }}
-  operator-api-serve-addr: {{ $defaultOperatorApiServeAddr | quote }}
-{{- end }}
-
-{{- if .Values.hubble.enabled }}
-  # Enable Hubble gRPC service.
-  enable-hubble: {{ .Values.hubble.enabled  | quote }}
-  # UNIX domain socket for Hubble server to listen to.
-  hubble-socket-path:  {{ .Values.hubble.socketPath | quote }}
-{{- if hasKey .Values.hubble "eventQueueSize" }}
-  # Buffer size of the channel for Hubble to receive monitor events. If this field is not set,
-  # the buffer size is set to the default monitor queue size.
-  hubble-event-queue-size: {{ .Values.hubble.eventQueueSize | quote }}
-{{- end }}
-{{- if hasKey .Values.hubble "flowBufferSize" }}
-  # DEPRECATED: this block should be removed in 1.11
-  hubble-flow-buffer-size: {{ .Values.hubble.flowBufferSize | quote }}
-{{- end }}
-{{- if hasKey .Values.hubble "eventBufferCapacity" }}
-  # Capacity of the buffer to store recent events.
-  hubble-event-buffer-capacity: {{ .Values.hubble.eventBufferCapacity | quote }}
-{{- end }}
-{{- if .Values.hubble.metrics.enabled }}
-  # Address to expose Hubble metrics (e.g. ":7070"). Metrics server will be disabled if this
-  # field is not set.
-  hubble-metrics-server: ":{{ .Values.hubble.metrics.port }}"
-  # A space separated list of metrics to enable. See [0] for available metrics.
-  #
-  # https://github.com/cilium/hubble/blob/master/Documentation/metrics.md
-  hubble-metrics: {{- range .Values.hubble.metrics.enabled }}
-    {{.}}
-{{- end }}
-{{- end }}
-{{- if hasKey .Values.hubble "listenAddress" }}
-  # An additional address for Hubble server to listen to (e.g. ":4244").
-  hubble-listen-address: {{ .Values.hubble.listenAddress | quote }}
-{{- if .Values.hubble.tls.enabled }}
-  hubble-disable-tls: "false"
-  hubble-tls-cert-file: /var/lib/cilium/tls/hubble/server.crt
-  hubble-tls-key-file: /var/lib/cilium/tls/hubble/server.key
-  hubble-tls-client-ca-files: /var/lib/cilium/tls/hubble/client-ca.crt
-{{- else }}
-  hubble-disable-tls: "true"
-{{- end }}
-{{- end }}
-{{- end }}
-{{- if hasKey .Values "disableIptablesFeederRules" }}
-  # A space separated list of iptables chains to disable when installing feeder rules.
-  disable-iptables-feeder-rules: {{ .Values.disableIptablesFeederRules | join " " | quote }}
-{{- end }}
-  ipam: {{ $ipam | quote }}
-
-{{- if eq $ipam "cluster-pool" }}
-{{- if .Values.ipv4.enabled }}
-  cluster-pool-ipv4-cidr: {{ .Values.ipam.operator.clusterPoolIPv4PodCIDR | quote }}
-  cluster-pool-ipv4-mask-size: {{ .Values.ipam.operator.clusterPoolIPv4MaskSize | quote  }}
-{{- end }}
-{{- if .Values.ipv6.enabled }}
-  cluster-pool-ipv6-cidr: {{ .Values.ipam.operator.clusterPoolIPv6PodCIDR | quote }}
-  cluster-pool-ipv6-mask-size: {{ .Values.ipam.operator.clusterPoolIPv6MaskSize | quote }}
-{{- end }}
-{{- end }}
-
-{{- if .Values.enableCnpStatusUpdates }}
-  disable-cnp-status-updates: {{ (not .Values.enableCnpStatusUpdates) | quote }}
-{{- else if (eq $defaultEnableCnpStatusUpdates "false") }}
-  disable-cnp-status-updates: "true"
-{{- end }}
-
-{{- if .Values.egressGateway.enabled }}
-  enable-egress-gateway: "true"
-{{- end }}
-
-{{- if .Values.enableK8sEventHandover }}
-  enable-k8s-event-handover: "true"
-{{- end }}
-
-{{- if hasKey .Values "crdWaitTimeout" }}
-  crd-wait-timeout: {{ .Values.crdWaitTimeout | quote }}
-{{- else if ( ne $crdWaitTimeout "5m" ) }}
-  crd-wait-timeout: {{ $crdWaitTimeout | quote }}
-{{- end }}
-
-{{- if .Values.enableK8sEndpointSlice }}
-  enable-k8s-endpoint-slice: {{ .Values.enableK8sEndpointSlice | quote }}
-{{- end }}
-
-{{- if hasKey .Values.k8s "serviceProxyName" }}
-  # Configure service proxy name for Cilium.
-  k8s-service-proxy-name: {{ .Values.k8s.serviceProxyName | quote }}
-{{- end }}
-
-{{- if and .Values.customCalls .Values.customCalls.enabled }}
-  # Enable tail call hooks for custom eBPF programs.
-  enable-custom-calls: {{ .Values.customCalls.enabled | quote }}
-{{- end }}
-
-{{- if and .Values.bgp.enabled (not .Values.bgp.announce.loadbalancerIP) }}
-{{ fail "BGP was enabled, but no announcements were enabled. Please enable one or more announcements." }}
-{{- else if and .Values.bgp.enabled .Values.bgp.announce.loadbalancerIP }}
-  bgp-announce-lb-ip: {{ .Values.bgp.announce.loadbalancerIP | quote }}
-{{- end }}
-
-{{- if hasKey .Values.cgroup "hostRoot" }}
-  cgroup-root: {{ .Values.cgroup.hostRoot | quote }}
-{{- end }}
-
-{{- if .Values.extraConfig }}
-{{ toYaml .Values.extraConfig | indent 2 }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-etcd-operator-clusterrole.yaml b/charts/cilium/templates/cilium-etcd-operator-clusterrole.yaml
deleted file mode 100644
index d702793..0000000
--- a/charts/cilium/templates/cilium-etcd-operator-clusterrole.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-{{- if .Values.etcd.managed }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: cilium-etcd-operator
-rules:
-- apiGroups:
-  - etcd.database.coreos.com
-  resources:
-  - etcdclusters
-  verbs:
-  - get
-  - delete
-  - create
-  - update
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  - delete
-  - get
-  - create
-- apiGroups:
-  - ""
-  resources:
-  - deployments
-  verbs:
-  - delete
-  - create
-  - get
-  - update
-- apiGroups:
-  - ""
-  resources:
-  - pods
-  verbs:
-  - list
-  - get
-  - delete
-- apiGroups:
-  - apps
-  resources:
-  - deployments
-  verbs:
-  - delete
-  - create
-  - get
-  - update
-- apiGroups:
-  - ""
-  resources:
-  - componentstatuses
-  verbs:
-  - get
-- apiGroups:
-  - extensions
-  resources:
-  - deployments
-  verbs:
-  - delete
-  - create
-  - get
-  - update
-- apiGroups:
-  - ""
-  resources:
-  - secrets
-  verbs:
-  - get
-  - create
-  - delete
-{{- end }}
diff --git a/charts/cilium/templates/cilium-etcd-operator-clusterrolebinding.yaml b/charts/cilium/templates/cilium-etcd-operator-clusterrolebinding.yaml
deleted file mode 100644
index 026df49..0000000
--- a/charts/cilium/templates/cilium-etcd-operator-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and .Values.etcd.managed .Values.serviceAccounts.etcd.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  name: cilium-etcd-operator
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: cilium-etcd-operator
-subjects:
-- kind: ServiceAccount
-  name: {{ .Values.serviceAccounts.etcd.name | quote }}
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-etcd-operator-deployment.yaml b/charts/cilium/templates/cilium-etcd-operator-deployment.yaml
deleted file mode 100644
index 8665cf6..0000000
--- a/charts/cilium/templates/cilium-etcd-operator-deployment.yaml
+++ /dev/null
@@ -1,112 +0,0 @@
-{{- if .Values.etcd.managed }}
-
-{{- /* Workaround so that we can set the minimal k8s version that we support */ -}}
-{{- $k8sVersion := .Capabilities.KubeVersion.Version -}}
-{{- $k8sMajor := .Capabilities.KubeVersion.Major -}}
-{{- $k8sMinor := .Capabilities.KubeVersion.Minor -}}
-
-{{- if .Values.Capabilities -}}
-{{- if .Values.Capabilities.KubeVersion -}}
-{{- if .Values.Capabilities.KubeVersion.Version -}}
-{{- $k8sVersion = .Values.Capabilities.KubeVersion.Version -}}
-{{- if .Values.Capabilities.KubeVersion.Major -}}
-{{- $k8sMajor = toString (.Values.Capabilities.KubeVersion.Major) -}}
-{{- if .Values.Capabilities.KubeVersion.Minor -}}
-{{- $k8sMinor = toString (.Values.Capabilities.KubeVersion.Minor) -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  labels:
-    io.cilium/app: etcd-operator
-    name: cilium-etcd-operator
-  name: cilium-etcd-operator
-  namespace: {{ .Release.Namespace }}
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      io.cilium/app: etcd-operator
-      name: cilium-etcd-operator
-{{- with .Values.etcd.updateStrategy }}
-  strategy:
-    {{- toYaml . | trim | nindent 4 }}
-{{- end }}
-  template:
-    metadata:
-{{- with .Values.etcd.podAnnotations }}
-      annotations:
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        io.cilium/app: etcd-operator
-        name: cilium-etcd-operator
-{{- with .Values.etcd.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-{{- if .Values.etcd.affinity }}
-      affinity:
-{{ toYaml .Values.etcd.affinity | indent 8 }}
-{{- end }}
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-        {{ toYaml .Values.imagePullSecrets | indent 8 }}
-{{- end }}
-      containers:
-      - args:
-{{- with .Values.etcd.extraArgs }}
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-        #- --etcd-node-selector=disktype=ssd,cputype=high
-        command:
-        - /usr/bin/cilium-etcd-operator
-        env:
-        - name: CILIUM_ETCD_OPERATOR_CLUSTER_DOMAIN
-          value: "{{ .Values.etcd.clusterDomain }}"
-        - name: CILIUM_ETCD_OPERATOR_ETCD_CLUSTER_SIZE
-          value: "{{ .Values.etcd.clusterSize }}"
-        - name: CILIUM_ETCD_OPERATOR_NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        - name: CILIUM_ETCD_OPERATOR_POD_NAME
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.name
-        - name: CILIUM_ETCD_OPERATOR_POD_UID
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.uid
-        - name: CILIUM_ETCD_META_ETCD_AUTO_COMPACTION_MODE
-          value: "revision"
-        - name: CILIUM_ETCD_META_ETCD_AUTO_COMPACTION_RETENTION
-          value: "25000"
-        image: {{ .Values.etcd.image.repository }}:{{ .Values.etcd.image.tag }}
-        imagePullPolicy: {{ .Values.etcd.image.pullPolicy }}
-        name: cilium-etcd-operator
-      dnsPolicy: ClusterFirst
-      hostNetwork: true
-{{- if and (or (and (eq .Release.Namespace "kube-system") (gt $k8sMinor "10")) (ge $k8sMinor "17") (gt $k8sMajor "1")) .Values.enableCriticalPriorityClass }}
-      priorityClassName: system-cluster-critical
-{{- end }}
-      restartPolicy: Always
-      serviceAccount: {{ .Values.serviceAccounts.etcd.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.etcd.name | quote }}
-{{- with .Values.etcd.nodeSelector }}
-      nodeSelector:
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-{{- with .Values.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 6 }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-etcd-operator-serviceaccount.yaml b/charts/cilium/templates/cilium-etcd-operator-serviceaccount.yaml
deleted file mode 100644
index 9bc0a3e..0000000
--- a/charts/cilium/templates/cilium-etcd-operator-serviceaccount.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if and .Values.etcd.managed .Values.serviceAccounts.etcd.create }}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.etcd.name | quote }}
-  namespace: {{ .Release.Namespace }}
-  {{- if .Values.serviceAccounts.etcd.annotations }}
-  annotations:
-{{ toYaml .Values.serviceAccounts.etcd.annotations | indent 4 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-nodeinit-daemonset.yaml b/charts/cilium/templates/cilium-nodeinit-daemonset.yaml
deleted file mode 100644
index 3b1d6ed..0000000
--- a/charts/cilium/templates/cilium-nodeinit-daemonset.yaml
+++ /dev/null
@@ -1,290 +0,0 @@
-{{- if .Values.nodeinit.enabled }}
-
-{{- /* Workaround so that we can set the minimal k8s version that we support */ -}}
-{{- $k8sVersion := .Capabilities.KubeVersion.Version -}}
-{{- $k8sMajor := .Capabilities.KubeVersion.Major -}}
-{{- $k8sMinor := .Capabilities.KubeVersion.Minor -}}
-
-{{- if .Values.Capabilities -}}
-{{- if .Values.Capabilities.KubeVersion -}}
-{{- if .Values.Capabilities.KubeVersion.Version -}}
-{{- $k8sVersion = .Values.Capabilities.KubeVersion.Version -}}
-{{- if .Values.Capabilities.KubeVersion.Major -}}
-{{- $k8sMajor = toString (.Values.Capabilities.KubeVersion.Major) -}}
-{{- if .Values.Capabilities.KubeVersion.Minor -}}
-{{- $k8sMinor = toString (.Values.Capabilities.KubeVersion.Minor) -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-kind: DaemonSet
-apiVersion: apps/v1
-metadata:
-  name: cilium-node-init
-  namespace: {{ .Release.Namespace }}
-  labels:
-    app: cilium-node-init
-spec:
-  selector:
-    matchLabels:
-      app: cilium-node-init
-  template:
-    metadata:
-      annotations:
-{{- with .Values.nodeinit.podAnnotations }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        app: cilium-node-init
-{{- with .Values.nodeinit.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-{{- with .Values.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 6 }}
-{{- end }}
-      hostPID: true
-      hostNetwork: true
-{{- if and (or (and (eq .Release.Namespace "kube-system") (gt $k8sMinor "10")) (ge $k8sMinor "17") (gt $k8sMajor "1")) .Values.enableCriticalPriorityClass }}
-      priorityClassName: system-node-critical
-{{- end }}
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-        {{ toYaml .Values.imagePullSecrets | indent 6 }}
-{{- end }}
-      volumes:
-      # To access iptables concurrently with other processes (e.g. kube-proxy)
-      - hostPath:
-          path: /run/xtables.lock
-          type: FileOrCreate
-        name: xtables-lock
-      containers:
-        - name: node-init
-          image: {{ .Values.nodeinit.image.repository }}:{{ .Values.nodeinit.image.tag }}
-          imagePullPolicy: {{ .Values.nodeinit.image.pullPolicy }}
-          securityContext:
-            privileged: true
-          volumeMounts:
-            # To access iptables concurrently with other processes (e.g. kube-proxy)
-            - mountPath: /run/xtables.lock
-              name: xtables-lock
-          lifecycle:
-{{- if .Values.eni.enabled }}
-            postStart:
-              exec:
-                command:
-                  - "/bin/sh"
-                  - "-c"
-                  - |
-                    #!/bin/bash
-
-                    set -o errexit
-                    set -o pipefail
-                    set -o nounset
-
-                    # When running in AWS ENI mode, it's likely that 'aws-node' has
-                    # had a chance to install SNAT iptables rules. These can result
-                    # in dropped traffic, so we should attempt to remove them.
-                    # We do it using a 'postStart' hook since this may need to run
-                    # for nodes which might have already been init'ed but may still
-                    # have dangling rules. This is safe because there are no
-                    # dependencies on anything that is part of the startup script
-                    # itself, and can be safely run multiple times per node (e.g. in
-                    # case of a restart).
-                    if [[ "$(iptables-save | grep -c AWS-SNAT-CHAIN)" != "0" ]];
-                    then
-                      echo 'Deleting iptables rules created by the AWS CNI VPC plugin'
-                      iptables-save | grep -v AWS-SNAT-CHAIN | iptables-restore
-                    fi
-                    echo 'Done!'
-{{- end }}
-{{- if .Values.nodeinit.revertReconfigureKubelet }}
-            preStop:
-              exec:
-                command:
-                  - "nsenter"
-                  - "-t"
-                  - "1"
-                  - "-m"
-                  - "--"
-                  - "/bin/sh"
-                  - "-c"
-                  - |
-                    #!/bin/bash
-
-                    set -o errexit
-                    set -o pipefail
-                    set -o nounset
-
-                    if stat /tmp/node-deinit.cilium.io > /dev/null 2>&1; then
-                      exit 0
-                    fi
-
-                    echo "Waiting on pods to stop..."
-                    if [ ! -f /etc/crictl.yaml ] || grep -q 'docker' /etc/crictl.yaml; then
-                      # Works for COS, ubuntu
-                      while docker ps | grep -v "node-init" | grep -q "POD_cilium"; do sleep 1; done
-                    else
-                      # COS-beta (with containerd). Some versions of COS have crictl in /home/kubernetes/bin.
-                      while PATH="${PATH}:/home/kubernetes/bin" crictl ps | grep -v "node-init" | grep -q "POD_cilium"; do sleep 1; done
-                    fi
-
-                    if ip link show cilium_host; then
-                      echo "Deleting cilium_host interface..."
-                      ip link del cilium_host
-                    fi
-
-{{- if not (eq .Values.nodeinit.bootstrapFile "") }}
-                    rm -f {{ .Values.nodeinit.bootstrapFile }}
-{{- end }}
-
-                    rm -f /tmp/node-init.cilium.io
-                    touch /tmp/node-deinit.cilium.io
-
-{{- if .Values.nodeinit.reconfigureKubelet }}
-                    echo "Changing kubelet configuration to --network-plugin=kubenet"
-                    sed -i "s:--network-plugin=cni\ --cni-bin-dir={{ .Values.cni.binPath }}:--network-plugin=kubenet:g" /etc/default/kubelet
-                    echo "Restarting kubelet..."
-                    systemctl restart kubelet
-{{- end }}
-
-{{- if (and .Values.gke.enabled (or .Values.masquerade .Values.gke.disableDefaultSnat))}}
-                    # If the IP-MASQ chain exists, add back default jump rule from the GKE instance configure script
-                    if iptables -w -t nat -L IP-MASQ > /dev/null; then
-                      iptables -w -t nat -A POSTROUTING -m comment --comment "ip-masq: ensure nat POSTROUTING directs all non-LOCAL destination traffic to our custom IP-MASQ chain" -m addrtype ! --dst-type LOCAL -j IP-MASQ
-                    fi
-{{- end }}
-
-                    echo "Node de-initialization complete"
-{{- end }}
-          env:
-          - name: CHECKPOINT_PATH
-            value: /tmp/node-init.cilium.io
-          # STARTUP_SCRIPT is the script run on node bootstrap. Node
-          # bootstrapping can be customized in this script. This script is invoked
-          # using nsenter, so it runs in the host's network and mount namespace using
-          # the host's userland tools!
-          - name: STARTUP_SCRIPT
-            value: |
-              #!/bin/bash
-
-              set -o errexit
-              set -o pipefail
-              set -o nounset
-
-              echo "Link information:"
-              ip link
-
-              echo "Routing table:"
-              ip route
-
-              echo "Addressing:"
-              ip -4 a
-              ip -6 a
-
-{{- if .Values.nodeinit.removeCbrBridge }}
-              if ip link show cbr0; then
-                echo "Detected cbr0 bridge. Deleting interface..."
-                ip link del cbr0
-              fi
-{{- end }}
-
-{{- if .Values.nodeinit.reconfigureKubelet }}
-              # GKE: Alter the kubelet configuration to run in CNI mode
-              echo "Changing kubelet configuration to --network-plugin=cni --cni-bin-dir={{ .Values.cni.binPath }}"
-              mkdir -p {{ .Values.cni.binPath }}
-              sed -i "s:--network-plugin=kubenet:--network-plugin=cni\ --cni-bin-dir={{ .Values.cni.binPath }}:g" /etc/default/kubelet
-              echo "Restarting kubelet..."
-              systemctl restart kubelet
-{{- end }}
-
-{{- if (and .Values.gke.enabled (or .Values.masquerade .Values.gke.disableDefaultSnat))}}
-              # If Cilium is configured to manage masquerading of traffic leaving the node,
-              # we need to disable the IP-MASQ chain because even if ip-masq-agent
-              # is not installed, the node init script installs some default rules into
-              # the IP-MASQ chain.
-              # If we remove the jump to that ip-masq chain, then we ensure the ip masquerade
-              # configuration is solely managed by Cilium.
-              # Also, if Cilium is installed, it may be expected that it would be solely responsible
-              # for the networking configuration on that node. So provide the same functionality
-              # as the --disable-snat-flag for existing GKE clusters.
-              iptables -w -t nat -D POSTROUTING -m comment --comment "ip-masq: ensure nat POSTROUTING directs all non-LOCAL destination traffic to our custom IP-MASQ chain" -m addrtype ! --dst-type LOCAL -j IP-MASQ || true
-{{- end }}
-
-{{- if not (eq .Values.nodeinit.bootstrapFile "") }}
-              date > {{ .Values.nodeinit.bootstrapFile }}
-{{- end }}
-
-{{- if .Values.nodeinit.restartPods }}
-              echo "Restarting kubenet managed pods"
-              if [ ! -f /etc/crictl.yaml ] || grep -q 'docker' /etc/crictl.yaml; then
-                # Works for COS, ubuntu
-                # Note the first line is the containerID with a trailing \r
-                for f in `find /var/lib/cni/networks/ -type f ! -name lock ! -name last_reserved_ip.0`; do docker rm -f "$(sed 's/\r//;1q' $f)" || true; done
-              elif [ -n "$(docker ps --format '{{ "{{" }}.Image{{ "}}" }}' | grep ^[0-9]*\.dkr\.ecr\.[a-z]*-[a-z]*-[0-9]*\.amazonaws\.com/amazon-k8s-cni)" ]; then
-                timeout=1
-                for i in $(seq 1 7); do
-                  echo "Checking introspection API"
-                  curl localhost:61679 && retry=false || retry=true
-                  if [ $retry == false ]; then break ; fi
-                  sleep "$timeout"
-                  timeout=$(($timeout * 2))
-                done
-
-                for pod in $(curl "localhost:61679/v1/pods" 2> /dev/null | jq -r '. | keys[]'); do
-                  container_id=$(echo "$pod" | awk -F_ ' { print $3 } ' | cut -c1-12)
-                  echo "Restarting ${container_id}"
-                  docker kill "${container_id}" || true
-                done
-              else
-                # COS-beta (with containerd). Some versions of COS have crictl in /home/kubernetes/bin.
-                for f in `find /var/lib/cni/networks/ -type f ! -name lock ! -name last_reserved_ip.0`; do PATH="${PATH}:/home/kubernetes/bin" crictl stopp "$(sed 's/\r//;1q' $f)" || true; done
-              fi
-{{- end }}
-
-              # AKS: If azure-vnet is installed on the node, and (still) configured in bridge mode,
-              # configure it as 'transparent' to be consistent with Cilium's CNI chaining config.
-              # If the azure-vnet CNI config is not removed, kubelet will execute CNI CHECK commands
-              # against it every 5 seconds and write 'bridge' to its state file, causing inconsistent
-              # behaviour when Pods are removed.
-              if [ -f /etc/cni/net.d/10-azure.conflist ]; then
-                echo "Ensuring azure-vnet is configured in 'transparent' mode..."
-                sed -i 's/"mode":\s*"bridge"/"mode":"transparent"/g' /etc/cni/net.d/10-azure.conflist
-              fi
-
-{{- if .Values.azure.enabled }}
-              # The azure0 interface being present means the node was booted with azure-vnet configured
-              # in bridge mode. This means there might be ebtables rules and neight entries interfering
-              # with pod connectivity if we deploy with Azure IPAM.
-              if ip l show dev azure0 >/dev/null 2>&1; then
-
-                # In Azure IPAM mode, also remove the azure-vnet state file, otherwise ebtables rules get
-                # restored by the azure-vnet CNI plugin on every CNI CHECK, which can cause connectivity
-                # issues in Cilium-managed Pods. Since azure-vnet is no longer called on scheduling events,
-                # this file can be removed.
-                rm -f /var/run/azure-vnet.json
-
-                # This breaks connectivity for existing workload Pods when Cilium is scheduled, but we need
-                # to flush these to prevent Cilium-managed Pod IPs conflicting with Pod IPs previously allocated
-                # by azure-vnet. These ebtables DNAT rules contain fixed MACs that are no longer bound on the node,
-                # causing packets for these Pods to be redirected back out to the gateway, where they are dropped.
-                echo 'Flushing ebtables pre/postrouting rules in nat table.. (disconnecting non-Cilium Pods!)'
-                ebtables -t nat -F PREROUTING || true
-                ebtables -t nat -F POSTROUTING || true
-
-                # ip-masq-agent periodically injects PERM neigh entries towards the gateway
-                # for all other k8s nodes in the cluster. These are safe to flush, as ARP can
-                # resolve these nodes as usual. PERM entries will be automatically restored later.
-                echo 'Deleting all permanent neighbour entries on azure0...'
-                ip neigh show dev azure0 nud permanent | cut -d' ' -f1 | xargs -r -n1 ip neigh del dev azure0 to || true
-              fi
-{{- end }}
-
-{{- if .Values.nodeinit.revertReconfigureKubelet }}
-              rm -f /tmp/node-deinit.cilium.io
-{{- end }}
-              echo "Node initialization complete"
-{{- end }}
diff --git a/charts/cilium/templates/cilium-operator-clusterrole.yaml b/charts/cilium/templates/cilium-operator-clusterrole.yaml
deleted file mode 100644
index 33dcc8f..0000000
--- a/charts/cilium/templates/cilium-operator-clusterrole.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-{{- if .Values.operator.enabled }}
-
-{{- /* Workaround so that we can set the minimal k8s version that we support */ -}}
-{{- $k8sVersion := .Capabilities.KubeVersion.Version -}}
-{{- $k8sMajor := .Capabilities.KubeVersion.Major -}}
-{{- $k8sMinor := .Capabilities.KubeVersion.Minor -}}
-
-{{- if .Values.Capabilities -}}
-{{- if .Values.Capabilities.KubeVersion -}}
-{{- if .Values.Capabilities.KubeVersion.Version -}}
-{{- $k8sVersion = .Values.Capabilities.KubeVersion.Version -}}
-{{- if .Values.Capabilities.KubeVersion.Major -}}
-{{- $k8sMajor = toString (.Values.Capabilities.KubeVersion.Major) -}}
-{{- if .Values.Capabilities.KubeVersion.Minor -}}
-{{- $k8sMinor = toString (.Values.Capabilities.KubeVersion.Minor) -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: cilium-operator
-rules:
-- apiGroups:
-  - ""
-  resources:
-  # to automatically delete [core|kube]dns pods so that are starting to being
-  # managed by Cilium
-  - pods
-  verbs:
-  - get
-  - list
-  - watch
-  - delete
-- apiGroups:
-  - discovery.k8s.io
-  resources:
-  - endpointslices
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - services
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  # to perform LB IP allocation for BGP
-  - services/status
-  verbs:
-  - update
-- apiGroups:
-  - ""
-  resources:
-  # to perform the translation of a CNP that contains `ToGroup` to its endpoints
-  - services
-  - endpoints
-  # to check apiserver connectivity
-  - namespaces
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - cilium.io
-  resources:
-  - ciliumnetworkpolicies
-  - ciliumnetworkpolicies/status
-  - ciliumnetworkpolicies/finalizers
-  - ciliumclusterwidenetworkpolicies
-  - ciliumclusterwidenetworkpolicies/status
-  - ciliumclusterwidenetworkpolicies/finalizers
-  - ciliumendpoints
-  - ciliumendpoints/status
-  - ciliumendpoints/finalizers
-  - ciliumnodes
-  - ciliumnodes/status
-  - ciliumnodes/finalizers
-  - ciliumidentities
-  - ciliumidentities/status
-  - ciliumidentities/finalizers
-  - ciliumlocalredirectpolicies
-  - ciliumlocalredirectpolicies/status
-  - ciliumlocalredirectpolicies/finalizers
-  verbs:
-  - '*'
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  - create
-  - get
-  - list
-  - update
-  - watch
-# For cilium-operator running in HA mode.
-#
-# Cilium operator running in HA mode requires the use of ResourceLock for Leader Election
-# between multiple running instances.
-# The preferred way of doing this is to use LeasesResourceLock as edits to Leases are less
-# common and fewer objects in the cluster watch "all Leases".
-- apiGroups:
-  - coordination.k8s.io
-  resources:
-  - leases
-  verbs:
-  - create
-  - get
-  - update
-{{- end }}
diff --git a/charts/cilium/templates/cilium-operator-clusterrolebinding.yaml b/charts/cilium/templates/cilium-operator-clusterrolebinding.yaml
deleted file mode 100644
index 4eb6c82..0000000
--- a/charts/cilium/templates/cilium-operator-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and .Values.operator.enabled .Values.serviceAccounts.operator.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  name: cilium-operator
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: cilium-operator
-subjects:
-- kind: ServiceAccount
-  name: {{ .Values.serviceAccounts.operator.name | quote }}
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-operator-deployment.yaml b/charts/cilium/templates/cilium-operator-deployment.yaml
deleted file mode 100644
index ff114c9..0000000
--- a/charts/cilium/templates/cilium-operator-deployment.yaml
+++ /dev/null
@@ -1,302 +0,0 @@
-{{- if .Values.operator.enabled }}
-
-{{- /* Workaround so that we can set the minimal k8s version that we support */ -}}
-{{- $k8sVersion := .Capabilities.KubeVersion.Version -}}
-{{- $k8sMajor := .Capabilities.KubeVersion.Major -}}
-{{- $k8sMinor := .Capabilities.KubeVersion.Minor -}}
-
-{{- if .Values.Capabilities -}}
-{{- if .Values.Capabilities.KubeVersion -}}
-{{- if .Values.Capabilities.KubeVersion.Version -}}
-{{- $k8sVersion = .Values.Capabilities.KubeVersion.Version -}}
-{{- if .Values.Capabilities.KubeVersion.Major -}}
-{{- $k8sMajor = toString (.Values.Capabilities.KubeVersion.Major) -}}
-{{- if .Values.Capabilities.KubeVersion.Minor -}}
-{{- $k8sMinor = toString (.Values.Capabilities.KubeVersion.Minor) -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  labels:
-    io.cilium/app: operator
-    name: cilium-operator
-  name: cilium-operator
-  namespace: {{ .Release.Namespace }}
-spec:
-  # See docs on ServerCapabilities.LeasesResourceLock in file pkg/k8s/version/version.go
-  # for more details.
-  replicas: {{ .Values.operator.replicas }}
-  selector:
-    matchLabels:
-      io.cilium/app: operator
-      name: cilium-operator
-{{- with .Values.operator.updateStrategy }}
-  strategy:
-    {{- toYaml . | trim | nindent 4 }}
-{{- end }}
-  template:
-    metadata:
-      annotations:
-{{- if .Values.operator.rollOutPods }}
-        # ensure pods roll when configmap updates
-        cilium.io/cilium-configmap-checksum: {{ include (print $.Template.BasePath "/cilium-configmap.yaml") . | sha256sum | quote }}
-{{- end }}
-{{- if and .Values.operator.prometheus.enabled (not .Values.operator.prometheus.serviceMonitor.enabled) }}
-        prometheus.io/port: {{ .Values.operator.prometheus.port | quote }}
-        prometheus.io/scrape: "true"
-{{- end }}
-{{- with .Values.operator.podAnnotations }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        io.cilium/app: operator
-        name: cilium-operator
-{{- with .Values.operator.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-      # In HA mode, cilium-operator pods must not be scheduled on the same
-      # node as they will clash with each other.
-  {{- if .Values.operator.affinity }}
-      affinity:
-  {{- toYaml .Values.operator.affinity | trim | nindent 8 }}
-  {{- end }}
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-{{ toYaml .Values.imagePullSecrets | indent 6 }}
-{{- end }}
-      containers:
-      - args:
-        - --config-dir=/tmp/cilium/config-map
-        - --debug=$(CILIUM_DEBUG)
-{{- with .Values.operator.extraArgs }}
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-        command:
-{{- if .Values.eni.enabled }}
-        - cilium-operator-aws
-{{- else if .Values.azure.enabled }}
-        - cilium-operator-azure
-{{- else if .Values.alibabacloud.enabled}}
-        - cilium-operator-alibabacloud
-{{- else }}
-        - cilium-operator-generic
-{{- end }}
-        env:
-        - name: K8S_NODE_NAME
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: spec.nodeName
-        - name: CILIUM_K8S_NAMESPACE
-          valueFrom:
-            fieldRef:
-              apiVersion: v1
-              fieldPath: metadata.namespace
-        - name: CILIUM_DEBUG
-          valueFrom:
-            configMapKeyRef:
-              key: debug
-              name: cilium-config
-              optional: true
-{{- if (and .Values.eni.enabled (not .Values.eni.iamRole )) }}
-        - name: AWS_ACCESS_KEY_ID
-          valueFrom:
-            secretKeyRef:
-              key: AWS_ACCESS_KEY_ID
-              name: cilium-aws
-              optional: true
-        - name: AWS_SECRET_ACCESS_KEY
-          valueFrom:
-            secretKeyRef:
-              key: AWS_SECRET_ACCESS_KEY
-              name: cilium-aws
-              optional: true
-        - name: AWS_DEFAULT_REGION
-          valueFrom:
-            secretKeyRef:
-              key: AWS_DEFAULT_REGION
-              name: cilium-aws
-              optional: true
-{{- end }}
-{{- if .Values.alibabacloud.enabled }}
-        - name: ALIBABA_CLOUD_ACCESS_KEY_ID
-          valueFrom:
-            secretKeyRef:
-              key: ALIBABA_CLOUD_ACCESS_KEY_ID
-              name: cilium-alibabacloud
-              optional: true
-        - name: ALIBABA_CLOUD_ACCESS_KEY_SECRET
-          valueFrom:
-            secretKeyRef:
-              key: ALIBABA_CLOUD_ACCESS_KEY_SECRET
-              name: cilium-alibabacloud
-              optional: true
-{{- end }}
-{{- if .Values.k8sServiceHost }}
-        - name: KUBERNETES_SERVICE_HOST
-          value: {{ .Values.k8sServiceHost | quote }}
-{{- end }}
-{{- if .Values.k8sServicePort }}
-        - name: KUBERNETES_SERVICE_PORT
-          value: {{ .Values.k8sServicePort | quote }}
-{{- end }}
-{{- if .Values.azure.subscriptionID }}
-        - name: AZURE_SUBSCRIPTION_ID
-          value: {{ .Values.azure.subscriptionID }}
-{{- end }}
-{{- if .Values.azure.tenantID }}
-        - name: AZURE_TENANT_ID
-          value: {{ .Values.azure.tenantID }}
-{{- end }}
-{{- if .Values.azure.resourceGroup }}
-        - name: AZURE_RESOURCE_GROUP
-          value: {{ .Values.azure.resourceGroup }}
-{{- end }}
-{{- if .Values.azure.clientID }}
-        - name: AZURE_CLIENT_ID
-          value: {{ .Values.azure.clientID }}
-{{- end }}
-{{- if .Values.azure.clientSecret }}
-        - name: AZURE_CLIENT_SECRET
-          value: {{ .Values.azure.clientSecret }}
-{{- end }}
-{{- range $key, $value := .Values.operator.extraEnv }}
-        - name: {{ $key }}
-          value: {{ $value }}
-{{- end }}
-{{- if .Values.eni.enabled }}
-        image: "{{ .Values.operator.image.repository }}-aws{{ .Values.operator.image.suffix }}:{{ .Values.operator.image.tag }}{{ if .Values.operator.image.useDigest }}@{{ .Values.operator.image.awsDigest }}{{ end }}"
-{{- else if .Values.azure.enabled }}
-        image: "{{ .Values.operator.image.repository }}-azure{{ .Values.operator.image.suffix }}:{{ .Values.operator.image.tag }}{{ if .Values.operator.image.useDigest }}@{{ .Values.operator.image.azureDigest }}{{ end }}"
-{{- else if .Values.alibabacloud.enabled }}
-        image: "{{ .Values.operator.image.repository }}-alibabacloud{{ .Values.operator.image.suffix }}:{{ .Values.operator.image.tag }}{{ if .Values.operator.image.useDigest }}@{{ .Values.operator.image.alibabacloudDigest }}{{ end }}"
-{{- else }}
-        image: "{{ .Values.operator.image.repository }}-generic{{ .Values.operator.image.suffix }}:{{ .Values.operator.image.tag }}{{ if .Values.operator.image.useDigest }}@{{ .Values.operator.image.genericDigest }}{{ end }}"
-{{- end }}
-        imagePullPolicy: {{ .Values.operator.image.pullPolicy }}
-        name: cilium-operator
-{{- if .Values.operator.prometheus.enabled }}
-        ports:
-        - containerPort: {{ .Values.operator.prometheus.port }}
-          hostPort: {{ .Values.operator.prometheus.port }}
-          name: prometheus
-          protocol: TCP
-{{- end }}
-        livenessProbe:
-          httpGet:
-{{- if .Values.ipv4.enabled }}
-            host: '127.0.0.1'
-{{- else }}
-            host: '::1'
-{{- end }}
-            path: /healthz
-            port: 9234
-            scheme: HTTP
-          initialDelaySeconds: 60
-          periodSeconds: 10
-          timeoutSeconds: 3
-        volumeMounts:
-        - mountPath: /tmp/cilium/config-map
-          name: cilium-config-path
-          readOnly: true
-{{- if .Values.etcd.enabled }}
-        - mountPath: /var/lib/etcd-config
-          name: etcd-config-path
-          readOnly: true
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-        - mountPath: /var/lib/etcd-secrets
-          name: etcd-secrets
-          readOnly: true
-{{- end }}
-{{- end }}
-{{- if .Values.kubeConfigPath }}
-        - mountPath: {{ .Values.kubeConfigPath }}
-          name: kube-config
-          readOnly: true
-{{- end }}
-{{- range .Values.operator.extraHostPathMounts }}
-        - mountPath: {{ .mountPath }}
-          name: {{ .name }}
-          readOnly: {{ .readOnly }}
-{{- if .mountPropagation }}
-          mountPropagation: {{ .mountPropagation }}
-{{- end }}
-{{- end }}
-{{- if .Values.bgp.enabled }}
-        - mountPath: /var/lib/cilium/bgp
-          name: bgp-config-path
-          readOnly: true
-{{- end }}
-{{- if .Values.operator.resources }}
-        resources:
-          {{- toYaml .Values.operator.resources | trim | nindent 10 }}
-{{- end }}
-      hostNetwork: true
-{{- if (and .Values.etcd.managed (not .Values.etcd.k8sService)) }}
-      # In managed etcd mode, Cilium must be able to resolve the DNS name of
-      # the etcd service
-      dnsPolicy: ClusterFirstWithHostNet
-{{- end }}
-      restartPolicy: Always
-{{- if and (or (and (eq .Release.Namespace "kube-system") (gt $k8sMinor "10")) (ge $k8sMinor "17") (gt $k8sMajor "1")) .Values.enableCriticalPriorityClass }}
-      priorityClassName: system-cluster-critical
-{{- end }}
-      serviceAccount: {{ .Values.serviceAccounts.operator.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.operator.name | quote }}
-{{- with .Values.operator.nodeSelector }}
-      nodeSelector:
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-{{- with .Values.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 6 }}
-{{- end }}
-      volumes:
-        # To read the configuration from the config map
-      - configMap:
-          name: cilium-config
-        name: cilium-config-path
-{{- if .Values.etcd.enabled }}
-      # To read the etcd config stored in config maps
-      - configMap:
-          defaultMode: 420
-          items:
-          - key: etcd-config
-            path: etcd.config
-          name: cilium-config
-        name: etcd-config-path
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-        # To read the k8s etcd secrets in case the user might want to use TLS
-      - name: etcd-secrets
-        secret:
-          defaultMode: 420
-          optional: true
-          secretName: cilium-etcd-secrets
-{{- end }}
-{{- end }}
-{{- if .Values.kubeConfigPath }}
-      - hostPath:
-          path: {{ .Values.kubeConfigPath }}
-          type: FileOrCreate
-        name: kube-config
-{{- end }}
-{{- range .Values.operator.extraHostPathMounts }}
-      - name: {{ .name }}
-        hostPath:
-          path: {{ .hostPath }}
-{{- if .hostPathType }}
-          type: {{ .hostPathType }}
-{{- end }}
-{{- end }}
-{{- if .Values.bgp.enabled }}
-      - configMap:
-          name: bgp-config
-        name: bgp-config-path
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-operator-service.yaml b/charts/cilium/templates/cilium-operator-service.yaml
deleted file mode 100644
index eb1dadd..0000000
--- a/charts/cilium/templates/cilium-operator-service.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-{{- if and (.Values.operator.enabled) (.Values.operator.prometheus.enabled) (.Values.operator.prometheus.serviceMonitor.enabled) }}
-kind: Service
-apiVersion: v1
-metadata:
-  name: cilium-operator
-  namespace: {{ .Release.Namespace }}
-  labels:
-    io.cilium/app: operator
-    name: cilium-operator
-spec:
-  clusterIP: None
-  type: ClusterIP
-  ports:
-  - name: metrics
-    port: 6942
-    protocol: TCP
-    targetPort: prometheus
-  selector:
-    io.cilium/app: operator
-    name: cilium-operator
-{{- end }}
diff --git a/charts/cilium/templates/cilium-operator-serviceaccount.yaml b/charts/cilium/templates/cilium-operator-serviceaccount.yaml
deleted file mode 100644
index 0c579b8..0000000
--- a/charts/cilium/templates/cilium-operator-serviceaccount.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and .Values.operator.enabled .Values.serviceAccounts.operator.create }}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.operator.name | quote }}
-  namespace: {{ .Release.Namespace }}
-  {{- if and .Values.eni.enabled .Values.eni.iamRole }}
-  {{ $_ := set .Values.serviceAccounts.operator.annotations "eks.amazonaws.com/role-arn" .Values.eni.iamRole }}
-  {{- end}}
-  {{- if .Values.serviceAccounts.operator.annotations }}
-  annotations:
-{{ toYaml .Values.serviceAccounts.operator.annotations | indent 4 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-operator-servicemonitor.yaml b/charts/cilium/templates/cilium-operator-servicemonitor.yaml
deleted file mode 100644
index 39ce055..0000000
--- a/charts/cilium/templates/cilium-operator-servicemonitor.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-{{- if and (.Values.operator.enabled) (.Values.operator.prometheus.enabled) (.Values.operator.prometheus.serviceMonitor.enabled) }}
-apiVersion: monitoring.coreos.com/v1
-kind: ServiceMonitor
-metadata:
-  name: cilium-operator
-  {{- if .Values.operator.prometheus.serviceMonitor.namespace }}
-  namespace: {{ .Values.operator.prometheus.serviceMonitor.namespace }}
-  {{- else }}
-  namespace: {{ .Release.Namespace }}
-  {{- end }}
-  labels:
-    {{- with .Values.operator.prometheus.serviceMonitor.labels }}
-    {{- toYaml . | nindent 4 }}
-    {{- end }}
-spec:
-  selector:
-    matchLabels:
-      io.cilium/app: operator
-      name: cilium-operator
-  namespaceSelector:
-    matchNames:
-    - {{ .Release.Namespace }}
-  endpoints:
-  - port: metrics
-    interval: 10s
-    honorLabels: true
-    path: /metrics
-  targetLabels:
-  - io.cilium/app
-{{- end }}
diff --git a/charts/cilium/templates/cilium-preflight-clusterrole.yaml b/charts/cilium/templates/cilium-preflight-clusterrole.yaml
deleted file mode 100644
index a0fe42e..0000000
--- a/charts/cilium/templates/cilium-preflight-clusterrole.yaml
+++ /dev/null
@@ -1,110 +0,0 @@
-{{- if .Values.preflight.enabled }}
-{{- /*
-Keep file in synced with cilium-agent-clusterrole.yaml
-*/ -}}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: cilium-pre-flight
-rules:
-- apiGroups:
-  - networking.k8s.io
-  resources:
-  - networkpolicies
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - discovery.k8s.io
-  resources:
-  - endpointslices
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - namespaces
-  - services
-  - nodes
-  - endpoints
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - ""
-  resources:
-  - pods
-  - pods/finalizers
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-  - delete
-- apiGroups:
-  - ""
-  resources:
-  - nodes
-  verbs:
-  - get
-  - list
-  - watch
-  - update
-- apiGroups:
-  - ""
-  resources:
-  - nodes
-  - nodes/status
-  verbs:
-  - patch
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  # Deprecated for removal in v1.10
-  - create
-  - list
-  - watch
-  - update
-
-  # This is used when validating policies in preflight. This will need to stay
-  # until we figure out how to avoid "get" inside the preflight, and then
-  # should be removed ideally.
-  - get
-{{- if eq "k8s" .Values.tls.secretsBackend }}
-- apiGroups:
-  - ""
-  resources:
-  - secrets
-  verbs:
-  - get
-{{- end }}
-- apiGroups:
-  - cilium.io
-  resources:
-  - ciliumnetworkpolicies
-  - ciliumnetworkpolicies/status
-  - ciliumnetworkpolicies/finalizers
-  - ciliumclusterwidenetworkpolicies
-  - ciliumclusterwidenetworkpolicies/status
-  - ciliumclusterwidenetworkpolicies/finalizers
-  - ciliumendpoints
-  - ciliumendpoints/status
-  - ciliumendpoints/finalizers
-  - ciliumnodes
-  - ciliumnodes/status
-  - ciliumnodes/finalizers
-  - ciliumidentities
-  - ciliumidentities/finalizers
-  - ciliumlocalredirectpolicies
-  - ciliumlocalredirectpolicies/status
-  - ciliumlocalredirectpolicies/finalizers
-  - ciliumegressnatpolicies
-  verbs:
-  - '*'
-{{- end }}
diff --git a/charts/cilium/templates/cilium-preflight-clusterrolebinding.yaml b/charts/cilium/templates/cilium-preflight-clusterrolebinding.yaml
deleted file mode 100644
index 832dfb5..0000000
--- a/charts/cilium/templates/cilium-preflight-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and (.Values.preflight.enabled) (.Values.serviceAccounts.preflight.create) }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  name: cilium-pre-flight
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: cilium-pre-flight
-subjects:
-- kind: ServiceAccount
-  name: {{ .Values.serviceAccounts.preflight.name | quote }} 
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-preflight-daemonset.yaml b/charts/cilium/templates/cilium-preflight-daemonset.yaml
deleted file mode 100644
index 58d614b..0000000
--- a/charts/cilium/templates/cilium-preflight-daemonset.yaml
+++ /dev/null
@@ -1,161 +0,0 @@
-{{- if .Values.preflight.enabled }}
-apiVersion: apps/v1
-kind: DaemonSet
-metadata:
-  name: cilium-pre-flight-check
-  namespace: {{ .Release.Namespace }}
-spec:
-  selector:
-    matchLabels:
-      k8s-app: cilium-pre-flight-check
-      kubernetes.io/cluster-service: "true"
-  template:
-    metadata:
-{{- with .Values.preflight.podAnnotations }}
-      annotations:
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        k8s-app: cilium-pre-flight-check
-        kubernetes.io/cluster-service: "true"
-{{- with .Values.preflight.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-        {{ toYaml .Values.imagePullSecrets | indent 6 }}
-{{- end }}
-      initContainers:
-        - name: clean-cilium-state
-          image: "{{ .Values.preflight.image.repository }}:{{ .Values.preflight.image.tag }}{{ if .Values.preflight.image.useDigest }}@{{ .Values.preflight.image.digest }}{{ end }}"
-          imagePullPolicy: {{ .Values.preflight.image.pullPolicy }}
-          command: ["/bin/echo"]
-          args:
-          - "hello"
-      containers:
-        - name: cilium-pre-flight-check
-          image: "{{ .Values.preflight.image.repository }}:{{ .Values.preflight.image.tag }}{{ if .Values.preflight.image.useDigest }}@{{ .Values.preflight.image.digest }}{{ end }}"
-          imagePullPolicy: {{ .Values.preflight.image.pullPolicy }}
-          command: ["/bin/sh"]
-          args:
-          - -c
-          - "touch /tmp/ready; sleep 1h"
-          livenessProbe:
-            exec:
-              command:
-              - cat
-              - /tmp/ready
-            initialDelaySeconds: 5
-            periodSeconds: 5
-          readinessProbe:
-            exec:
-              command:
-              - cat
-              - /tmp/ready
-            initialDelaySeconds: 5
-            periodSeconds: 5
-          volumeMounts:
-          - mountPath: /var/run/cilium
-            name: cilium-run
-{{- if .Values.etcd.enabled }}
-          - mountPath: /var/lib/etcd-config
-            name: etcd-config-path
-            readOnly: true
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-          - mountPath: /var/lib/etcd-secrets
-            name: etcd-secrets
-            readOnly: true
-{{- end }}
-{{- end }}
-
-{{- if ne .Values.preflight.tofqdnsPreCache "" }}
-        - name: cilium-pre-flight-fqdn-precache
-          image: "{{ .Values.preflight.image.repository }}:{{ .Values.preflight.image.tag }}{{ if .Values.preflight.image.useDigest }}@{{ .Values.preflight.image.digest }}{{ end }}"
-          imagePullPolicy: {{ .Values.preflight.image.pullPolicy }}
-          name: cilium-pre-flight-fqdn-precache
-          command: ["/bin/sh"]
-          args:
-          - -c
-          - "cilium preflight fqdn-poller --tofqdns-pre-cache {{ .Values.preflight.tofqdnsPreCache }} && touch /tmp/ready-tofqdns-precache"
-          livenessProbe:
-            exec:
-              command:
-              - cat
-              - /tmp/read-tofqdns-precachey
-            initialDelaySeconds: 5
-            periodSeconds: 5
-          readinessProbe:
-            exec:
-              command:
-              - cat
-              - /tmp/read-tofqdns-precachey
-            initialDelaySeconds: 5
-            periodSeconds: 5
-          env:
-{{- if .Values.k8sServiceHost }}
-          - name: KUBERNETES_SERVICE_HOST
-            value: {{ .Values.k8sServiceHost | quote }}
-{{- end }}
-{{- if .Values.k8sServicePort }}
-          - name: KUBERNETES_SERVICE_PORT
-            value: {{ .Values.k8sServicePort | quote }}
-{{- end }}
-          volumeMounts:
-          - mountPath: /var/run/cilium
-            name: cilium-run
-{{- if .Values.etcd.enabled }}
-          - mountPath: /var/lib/etcd-config
-            name: etcd-config-path
-            readOnly: true
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-          - mountPath: /var/lib/etcd-secrets
-            name: etcd-secrets
-            readOnly: true
-{{- end }}
-{{- end }}
-{{- end }}
-      hostNetwork: true
-      # This is here to seamlessly allow migrate-identity to work with
-      # etcd-operator setups. The assumption is that other cases would also
-      # work since the cluster DNS would forward the request on.
-      # This differs from the cilium-agent daemonset, where this is only
-      # enabled when etcd.managed=true
-      dnsPolicy: ClusterFirstWithHostNet
-      restartPolicy: Always
-      serviceAccount: {{ .Values.serviceAccounts.preflight.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.preflight.name | quote }}
-      terminationGracePeriodSeconds: 1
-{{- with .Values.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 6 }}
-{{- end }}
-      volumes:
-        # To keep state between restarts / upgrades
-      - hostPath:
-          path: /var/run/cilium
-          type: DirectoryOrCreate
-        name: cilium-run
-      - hostPath:
-          path: /sys/fs/bpf
-          type: DirectoryOrCreate
-        name: bpf-maps
-{{- if .Values.etcd.enabled }}
-        # To read the etcd config stored in config maps
-      - configMap:
-          defaultMode: 420
-          items:
-          - key: etcd-config
-            path: etcd.config
-          name: cilium-config
-        name: etcd-config-path
-        # To read the k8s etcd secrets in case the user might want to use TLS
-{{- if or .Values.etcd.ssl .Values.etcd.managed }}
-      - name: etcd-secrets
-        secret:
-          defaultMode: 420
-          optional: true
-          secretName: cilium-etcd-secrets
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-preflight-deployment.yaml b/charts/cilium/templates/cilium-preflight-deployment.yaml
deleted file mode 100644
index 461a1a6..0000000
--- a/charts/cilium/templates/cilium-preflight-deployment.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-{{- if .Values.preflight.enabled }}
-{{- if .Values.preflight.validateCNPs }}
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: cilium-pre-flight-check
-  namespace: {{ .Release.Namespace }}
-spec:
-  selector:
-    matchLabels:
-      k8s-app: cilium-pre-flight-check-deployment
-      kubernetes.io/cluster-service: "true"
-  template:
-    metadata:
-{{- with .Values.preflight.podAnnotations }}
-      annotations:
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        k8s-app: cilium-pre-flight-check-deployment
-        kubernetes.io/cluster-service: "true"
-{{- with .Values.preflight.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-      affinity:
-        podAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-              - key: "k8s-app"
-                operator: In
-                values:
-                - cilium
-            topologyKey: "kubernetes.io/hostname"
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-        {{ toYaml .Values.imagePullSecrets | indent 8 }}
-{{- end }}
-      containers:
-{{- if .Values.preflight.validateCNPs }}
-        - name: cnp-validator
-          image: "{{ .Values.preflight.image.repository }}:{{ .Values.preflight.image.tag }}{{ if .Values.preflight.image.useDigest }}@{{ .Values.preflight.image.digest }}{{ end }}"
-          imagePullPolicy: {{ .Values.preflight.image.pullPolicy }}
-          command: ["/bin/sh"]
-          args:
-          - -c
-          - "cilium preflight validate-cnp && touch /tmp/ready-validate-cnp && sleep 1h"
-          livenessProbe:
-            exec:
-              command:
-              - cat
-              - /tmp/ready-validate-cnp
-            initialDelaySeconds: 5
-            periodSeconds: 5
-          readinessProbe:
-            exec:
-              command:
-              - cat
-              - /tmp/ready-validate-cnp
-            initialDelaySeconds: 5
-            periodSeconds: 5
-{{- if not ( and ( empty ( .Values.k8sServiceHost ))  ( empty ( .Values.k8sServicePort ))) }}
-          env:
-{{- if .Values.k8sServiceHost }}
-          - name: KUBERNETES_SERVICE_HOST
-            value: {{ .Values.k8sServiceHost | quote }}
-{{- end }}
-{{- if .Values.k8sServicePort }}
-          - name: KUBERNETES_SERVICE_PORT
-            value: {{ .Values.k8sServicePort | quote }}
-{{- end }}
-{{- end }}
-{{- end }}
-      hostNetwork: true
-      restartPolicy: Always
-      serviceAccount: {{ .Values.serviceAccounts.preflight.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.preflight.name | quote }}
-      terminationGracePeriodSeconds: 1
-{{- with .Values.preflight.nodeSelector }}
-      nodeSelector:
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-{{- with .Values.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 6 }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-preflight-serviceaccount.yaml b/charts/cilium/templates/cilium-preflight-serviceaccount.yaml
deleted file mode 100644
index 0d62e00..0000000
--- a/charts/cilium/templates/cilium-preflight-serviceaccount.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if and .Values.preflight.enabled .Values.serviceAccounts.preflight.create }}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.preflight.name | quote }}
-  namespace: {{ .Release.Namespace }}
-  {{- if .Values.serviceAccounts.preflight.annotations }}
-  annotations:
-{{ toYaml .Values.serviceAccounts.preflight.annotations | indent 4 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/cilium-resource-quota.yaml b/charts/cilium/templates/cilium-resource-quota.yaml
deleted file mode 100644
index a985696..0000000
--- a/charts/cilium/templates/cilium-resource-quota.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-{{- if or .Values.resourceQuotas.enabled (and (ne .Release.Namespace "kube-system") .Values.gke.enabled) }}
-{{- if .Values.agent }}
-apiVersion: v1
-kind: ResourceQuota
-metadata:
-  name: cilium-resource-quota
-  namespace: {{ .Release.Namespace }}
-spec:
-  hard:
-    pods: {{ .Values.resourceQuotas.cilium.hard.pods | quote }}
-  scopeSelector:
-    matchExpressions:
-    - operator: In
-      scopeName: PriorityClass
-      values:
-      - system-node-critical
-{{- end }}
-{{- if .Values.operator.enabled }}
----
-apiVersion: v1
-kind: ResourceQuota
-metadata:
-  name: cilium-operator-resource-quota
-  namespace: {{ .Release.Namespace }}
-spec:
-  hard:
-    pods: {{ .Values.resourceQuotas.operator.hard.pods | quote }}
-  scopeSelector:
-    matchExpressions:
-    - operator: In
-      scopeName: PriorityClass
-      values:
-      - system-cluster-critical
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-admin-secret.yaml b/charts/cilium/templates/clustermesh-apiserver-admin-secret.yaml
deleted file mode 100644
index 4b02306..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-admin-secret.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if and .Values.agent (not .Values.preflight.enabled) (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) }}
-{{- $adminCertsProvided := and .Values.clustermesh.apiserver.tls.ca.cert .Values.clustermesh.apiserver.tls.admin.cert .Values.clustermesh.apiserver.tls.admin.key }}
-{{- $apiserverCertsGenerate := and .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "helm") -}}
-{{- if or $adminCertsProvided $apiserverCertsGenerate }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: clustermesh-apiserver-admin-cert
-  namespace: {{ .Release.Namespace }}
-type: kubernetes.io/tls
-data:
-{{- if $apiserverCertsGenerate }}
-{{ include "clustermesh.apiserver.admin.gen-cert" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.clustermesh.apiserver.tls.ca.cert }}
-  tls.crt: {{ .Values.clustermesh.apiserver.tls.admin.cert }}
-  tls.key: {{ .Values.clustermesh.apiserver.tls.admin.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-ca-secret.yaml b/charts/cilium/templates/clustermesh-apiserver-ca-secret.yaml
deleted file mode 100644
index 129f8eb..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-ca-secret.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-{{- if and  .Values.agent (not .Values.preflight.enabled) (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) }}
-{{- if or (and .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "helm")) (and .Values.clustermesh.apiserver.tls.ca.cert .Values.clustermesh.apiserver.tls.ca.key) }}
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: clustermesh-apiserver-ca-cert
-  namespace: {{ .Release.Namespace }}
-data:
-{{- if and .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "helm") }}
-{{ include "clustermesh.apiserver.ca.gen-cert" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.clustermesh.apiserver.tls.ca.cert }}
-  ca.key: {{ .Values.clustermesh.apiserver.tls.ca.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-client-secret.yaml b/charts/cilium/templates/clustermesh-apiserver-client-secret.yaml
deleted file mode 100644
index d155a86..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-client-secret.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if and .Values.agent (not .Values.preflight.enabled) .Values.externalWorkloads.enabled }}
-{{- $clientCertsProvided := and .Values.clustermesh.apiserver.tls.ca.cert .Values.clustermesh.apiserver.tls.client.cert .Values.clustermesh.apiserver.tls.client.key }}
-{{- $apiserverCertsGenerate := and .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "helm") -}}
-{{- if or $clientCertsProvided $apiserverCertsGenerate }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: clustermesh-apiserver-client-cert
-  namespace: {{ .Release.Namespace }}
-type: kubernetes.io/tls
-data:
-{{- if $apiserverCertsGenerate }}
-{{ include "clustermesh.apiserver.client.gen-cert" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.clustermesh.apiserver.tls.ca.cert }}
-  tls.crt: {{ .Values.clustermesh.apiserver.tls.client.cert }}
-  tls.key: {{ .Values.clustermesh.apiserver.tls.client.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-clusterrole.yaml b/charts/cilium/templates/clustermesh-apiserver-clusterrole.yaml
deleted file mode 100644
index 74bd961..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-clusterrole.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) .Values.serviceAccounts.clustermeshApiserver.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: clustermesh-apiserver
-rules:
-- apiGroups:
-  - ""
-  resources:
-  - endpoints
-  - namespaces
-  - services
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - discovery.k8s.io
-  resources:
-  - endpointslices
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  - list
-- apiGroups:
-  - cilium.io
-  resources:
-  - ciliumnodes
-  - ciliumnodes/status
-  - ciliumexternalworkloads
-  - ciliumexternalworkloads/status
-  - ciliumidentities
-  - ciliumidentities/status
-  - ciliumendpoints
-  - ciliumendpoints/status
-  verbs:
-  - '*'
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-clusterrolebinding.yaml b/charts/cilium/templates/clustermesh-apiserver-clusterrolebinding.yaml
deleted file mode 100644
index a69bb6d..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) (.Values.serviceAccounts.clustermeshApiserver.create) }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  name: clustermesh-apiserver
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: clustermesh-apiserver
-subjects:
-- kind: ServiceAccount
-  name: {{ .Values.serviceAccounts.clustermeshApiserver.name | quote }}
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-deployment.yaml b/charts/cilium/templates/clustermesh-apiserver-deployment.yaml
deleted file mode 100644
index dfe50ac..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-deployment.yaml
+++ /dev/null
@@ -1,169 +0,0 @@
-{{- if (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) }}
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: clustermesh-apiserver
-  labels:
-    k8s-app: clustermesh-apiserver
-  namespace: {{ .Release.Namespace }}
-spec:
-  replicas: {{ .Values.clustermesh.apiserver.replicas }}
-  selector:
-    matchLabels:
-      k8s-app: clustermesh-apiserver
-{{- with .Values.clustermesh.apiserver.updateStrategy }}
-  strategy: {{- toYaml . | nindent 4 }}
-{{- end }}
-  template:
-    metadata:
-      annotations:
-{{- with .Values.clustermesh.apiserver.podAnnotations }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        k8s-app: clustermesh-apiserver
-{{- with .Values.clustermesh.apiserver.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-{{- with .Values.imagePullSecrets }}
-      imagePullSecrets: {{- toYaml . | nindent 8 }}
-{{- end }}
-      restartPolicy: Always
-      serviceAccount: {{ .Values.serviceAccounts.clustermeshApiserver.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.clustermeshApiserver.name | quote }}
-      initContainers:
-      - name: etcd-init
-        image: {{ .Values.clustermesh.apiserver.etcd.image.repository }}:{{ .Values.clustermesh.apiserver.etcd.image.tag }}
-        imagePullPolicy: {{ .Values.clustermesh.apiserver.etcd.image.pullPolicy }}
-        env:
-        - name: ETCDCTL_API
-          value: "3"
-        - name: HOSTNAME_IP
-          valueFrom:
-            fieldRef:
-              fieldPath: status.podIP
-        command: ["/bin/sh", "-c"]
-        args:
-        - >
-          rm -rf /var/run/etcd/*;
-          export ETCDCTL_API=3;
-          /usr/local/bin/etcd --data-dir=/var/run/etcd --name=clustermesh-apiserver --listen-client-urls=http://127.0.0.1:2379 --advertise-client-urls=http://127.0.0.1:2379 --initial-cluster-token=clustermesh-apiserver --initial-cluster-state=new --auto-compaction-retention=1 &
-          export rootpw=`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`;
-          echo $rootpw | etcdctl --interactive=false user add root;
-          etcdctl user grant-role root root;
-          export vmpw=`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`;
-          echo $vmpw | etcdctl --interactive=false user add externalworkload;
-          etcdctl role add externalworkload;
-          etcdctl role grant-permission externalworkload --from-key read '';
-          etcdctl role grant-permission externalworkload readwrite --prefix cilium/state/noderegister/v1/;
-          etcdctl role grant-permission externalworkload readwrite --prefix cilium/.initlock/;
-          etcdctl user grant-role externalworkload externalworkload;
-          export remotepw=`head /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`;
-          echo $remotepw | etcdctl --interactive=false user add remote;
-          etcdctl role add remote;
-          etcdctl role grant-permission remote --from-key read '';
-          etcdctl user grant-role remote remote;
-          etcdctl auth enable;
-          exit
-        volumeMounts:
-        - mountPath: /var/run/etcd
-          name: etcd-data-dir
-      containers:
-      - name: etcd
-        image: {{ .Values.clustermesh.apiserver.etcd.image.repository }}:{{ .Values.clustermesh.apiserver.etcd.image.tag }}
-        imagePullPolicy: {{ .Values.clustermesh.apiserver.etcd.image.pullPolicy }}
-        env:
-        - name: ETCDCTL_API
-          value: "3"
-        - name: HOSTNAME_IP
-          valueFrom:
-            fieldRef:
-              fieldPath: status.podIP
-        command:
-          - /usr/local/bin/etcd
-        args:
-          - --data-dir=/var/run/etcd
-          - --name=clustermesh-apiserver
-          - --client-cert-auth
-          - --trusted-ca-file=/var/lib/etcd-secrets/ca.crt
-          - --cert-file=/var/lib/etcd-secrets/tls.crt
-          - --key-file=/var/lib/etcd-secrets/tls.key
-          - --listen-client-urls=https://127.0.0.1:2379,https://$(HOSTNAME_IP):2379
-          - --advertise-client-urls=https://$(HOSTNAME_IP):2379
-          - --initial-cluster-token=clustermesh-apiserver
-          - --auto-compaction-retention=1
-        volumeMounts:
-        - mountPath: /var/lib/etcd-secrets
-          name: etcd-server-secrets
-          readOnly: true
-        - mountPath: /var/run/etcd
-          name: etcd-data-dir
-      - name: "apiserver"
-        image: "{{ .Values.clustermesh.apiserver.image.repository }}:{{ .Values.clustermesh.apiserver.image.tag }}{{ if .Values.clustermesh.apiserver.image.useDigest }}@{{ .Values.clustermesh.apiserver.image.digest }}{{ end }}"
-        imagePullPolicy: {{ .Values.clustermesh.apiserver.image.pullPolicy }}
-        command:
-          - /usr/bin/clustermesh-apiserver
-        args:
-{{- if .Values.debug.enabled }}
-          - --debug
-{{- end }}
-          - --cluster-name=$(CLUSTER_NAME)
-          - --kvstore-opt
-          - etcd.config=/var/lib/cilium/etcd-config.yaml
-        env:
-        - name: CLUSTER_NAME
-          valueFrom:
-            configMapKeyRef:
-              key: cluster-name
-              name: cilium-config
-        - name: CLUSTER_ID
-          valueFrom:
-            configMapKeyRef:
-              key: cluster-id
-              name: cilium-config
-              optional: true
-        - name: IDENTITY_ALLOCATION_MODE
-          valueFrom:
-            configMapKeyRef:
-              key: identity-allocation-mode
-              name: cilium-config
-{{- with .Values.clustermesh.apiserver.resources }}
-        resources: {{- toYaml . | nindent 10 }}
-{{- end }}
-        volumeMounts:
-        - mountPath: /var/lib/cilium/etcd-secrets
-          name: etcd-admin-client
-          readOnly: true
-      volumes:
-      - name: etcd-server-secrets
-        projected:
-          defaultMode: 0420
-          sources:
-          - secret:
-              name: clustermesh-apiserver-ca-cert
-              items:
-              - key: ca.crt
-                path: ca.crt
-          - secret:
-              name: clustermesh-apiserver-server-cert
-      - name: etcd-admin-client
-        projected:
-          defaultMode: 0420
-          sources:
-          - secret:
-              name: clustermesh-apiserver-ca-cert
-              items:
-              - key: ca.crt
-                path: ca.crt
-          - secret:
-              name: clustermesh-apiserver-admin-cert
-      - name: etcd-data-dir
-        emptyDir: {}
-{{- with .Values.clustermesh.apiserver.nodeSelector }}
-      nodeSelector: {{- toYaml . | nindent 8 }}
-{{- end }}
-{{- with .Values.clustermesh.apiserver.tolerations }}
-      tolerations: {{- toYaml . | nindent 8 }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-generate-certs-cronjob.yaml b/charts/cilium/templates/clustermesh-apiserver-generate-certs-cronjob.yaml
deleted file mode 100644
index a1962c3..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-generate-certs-cronjob.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "cronJob") .Values.clustermesh.apiserver.tls.auto.schedule }}
-apiVersion: batch/v1beta1
-kind: CronJob
-metadata:
-  name: clustermesh-apiserver-generate-certs
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: clustermesh-apiserver-generate-certs
-spec:
-  schedule: {{ .Values.clustermesh.apiserver.tls.auto.schedule | quote }}
-  concurrencyPolicy: Forbid
-  jobTemplate:
-{{- include "clustermesh-apiserver-generate-certs.job.spec" . | nindent 4 }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-generate-certs-job.yaml b/charts/cilium/templates/clustermesh-apiserver-generate-certs-job.yaml
deleted file mode 100644
index c0e4f03..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-generate-certs-job.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) (eq .Values.clustermesh.apiserver.tls.auto.method "cronJob") }}
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: clustermesh-apiserver-generate-certs
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: clustermesh-apiserver-generate-certs
-{{ include "clustermesh-apiserver-generate-certs.job.spec" . }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-generate-certs-role.yaml b/charts/cilium/templates/clustermesh-apiserver-generate-certs-role.yaml
deleted file mode 100644
index 45e59c8..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-generate-certs-role.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "cronJob") .Values.serviceAccounts.clustermeshcertgen.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: Role
-metadata:
-  name: clustermesh-apiserver-generate-certs
-  namespace: {{ .Release.Namespace }}
-rules:
-  - apiGroups:
-      - ""
-    resources:
-      - secrets
-    verbs:
-      - create
-  - apiGroups:
-      - ""
-    resources:
-      - secrets
-    resourceNames:
-      - clustermesh-apiserver-ca-cert
-    verbs:
-      - get
-      - update
-  - apiGroups:
-      - ""
-    resources:
-      - secrets
-    resourceNames:
-      - clustermesh-apiserver-server-cert
-      - clustermesh-apiserver-admin-cert
-      - clustermesh-apiserver-remote-cert
-      - clustermesh-apiserver-client-cert
-    verbs:
-      - update
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-generate-certs-rolebinding.yaml b/charts/cilium/templates/clustermesh-apiserver-generate-certs-rolebinding.yaml
deleted file mode 100644
index d52e9c0..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-generate-certs-rolebinding.yaml
+++ /dev/null
@@ -1,15 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "cronJob") .Values.serviceAccounts.clustermeshcertgen.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: RoleBinding
-metadata:
-  name: clustermesh-apiserver-generate-certs
-  namespace: {{ .Release.Namespace }}
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: Role
-  name: clustermesh-apiserver-generate-certs
-subjects:
-- kind: ServiceAccount
-  name: {{ .Values.serviceAccounts.clustermeshcertgen.name | quote }} 
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-generate-certs-serviceaccount.yaml b/charts/cilium/templates/clustermesh-apiserver-generate-certs-serviceaccount.yaml
deleted file mode 100644
index a7583fa..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-generate-certs-serviceaccount.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "cronJob") .Values.serviceAccounts.clustermeshcertgen.create }}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.clustermeshcertgen.name | quote }} 
-  namespace: {{ .Release.Namespace }}
-{{- with .Values.serviceAccounts.clustermeshcertgen.annotations }}
-  annotations: {{- toYaml . | nindent 4 }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-remote-secret.yaml b/charts/cilium/templates/clustermesh-apiserver-remote-secret.yaml
deleted file mode 100644
index 0545990..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-remote-secret.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if and .Values.agent (not .Values.preflight.enabled) .Values.clustermesh.useAPIServer }}
-{{- $remoteCertsProvided := and .Values.clustermesh.apiserver.tls.ca.cert .Values.clustermesh.apiserver.tls.remote.cert .Values.clustermesh.apiserver.tls.remote.key }}
-{{- $apiserverCertsGenerate := and .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "helm") -}}
-{{- if or $remoteCertsProvided $apiserverCertsGenerate }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: clustermesh-apiserver-remote-cert
-  namespace: {{ .Release.Namespace }}
-type: kubernetes.io/tls
-data:
-{{- if $apiserverCertsGenerate }}
-{{ include "clustermesh.apiserver.remote.gen-cert" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.clustermesh.apiserver.tls.ca.cert }}
-  tls.crt: {{ .Values.clustermesh.apiserver.tls.remote.cert }}
-  tls.key: {{ .Values.clustermesh.apiserver.tls.remote.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-server-secret.yaml b/charts/cilium/templates/clustermesh-apiserver-server-secret.yaml
deleted file mode 100644
index 4654e83..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-server-secret.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if and .Values.agent (not .Values.preflight.enabled) (or .Values.externalWorkloads.enabled .Values.clustermesh.useAPIServer) }}
-{{- $serverCertsProvided := and .Values.clustermesh.apiserver.tls.ca.cert .Values.clustermesh.apiserver.tls.server.cert .Values.clustermesh.apiserver.tls.server.key }}
-{{- $apiserverCertsGenerate := and .Values.clustermesh.apiserver.tls.auto.enabled (eq .Values.clustermesh.apiserver.tls.auto.method "helm") -}}
-{{- if or $serverCertsProvided $apiserverCertsGenerate }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: clustermesh-apiserver-server-cert
-  namespace: {{ .Release.Namespace }}
-type: kubernetes.io/tls
-data:
-{{- if $apiserverCertsGenerate }}
-{{ include "clustermesh.apiserver.server.gen-cert" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.clustermesh.apiserver.tls.ca.cert }}
-  tls.crt: {{ .Values.clustermesh.apiserver.tls.server.cert }}
-  tls.key: {{ .Values.clustermesh.apiserver.tls.server.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-service.yaml b/charts/cilium/templates/clustermesh-apiserver-service.yaml
deleted file mode 100644
index 16480bd..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-service.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-{{- if (or .Values.externalWorkloads.enabled  .Values.clustermesh.useAPIServer) }}
-apiVersion: v1
-kind: Service
-metadata:
-  name: "clustermesh-apiserver"
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: clustermesh-apiserver
-{{- with .Values.clustermesh.apiserver.service.annotations }}
-  annotations: {{- toYaml . | nindent 4 }}
-{{- end }}
-spec:
-  type: {{ .Values.clustermesh.apiserver.service.type }}
-  selector:
-    k8s-app: clustermesh-apiserver
-  ports:
-  - port: 2379
-{{- if and (eq "NodePort" .Values.clustermesh.apiserver.service.type) .Values.clustermesh.apiserver.service.nodePort }}
-    nodePort: {{ .Values.clustermesh.apiserver.service.nodePort }}
-{{- end }}
-{{- if and (eq "LoadBalancer" .Values.clustermesh.apiserver.service.type) .Values.clustermesh.apiserver.service.loadBalancerIP }}
-  loadBalancerIP: {{ .Values.clustermesh.apiserver.service.loadBalancerIP }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/clustermesh-apiserver-serviceaccount.yaml b/charts/cilium/templates/clustermesh-apiserver-serviceaccount.yaml
deleted file mode 100644
index 715d5c2..0000000
--- a/charts/cilium/templates/clustermesh-apiserver-serviceaccount.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-{{- if and (or .Values.externalWorkloads.enabled  .Values.clustermesh.useAPIServer) .Values.serviceAccounts.clustermeshApiserver.create -}}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.clustermeshApiserver.name | quote }}
-  namespace: {{ .Release.Namespace }}
-{{- with .Values.serviceAccounts.clustermeshApiserver.annotations }}
-  annotations: {{- toYaml . | nindent 4 }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/etcd-operator-clusterrole.yaml b/charts/cilium/templates/etcd-operator-clusterrole.yaml
deleted file mode 100644
index 5a87497..0000000
--- a/charts/cilium/templates/etcd-operator-clusterrole.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-{{- if .Values.etcd.managed }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: etcd-operator
-rules:
-- apiGroups:
-  - etcd.database.coreos.com
-  resources:
-  - etcdclusters
-  - etcdbackups
-  - etcdrestores
-  verbs:
-  - '*'
-- apiGroups:
-  - apiextensions.k8s.io
-  resources:
-  - customresourcedefinitions
-  verbs:
-  - '*'
-- apiGroups:
-  - ""
-  resources:
-  - pods
-  - services
-  - endpoints
-  - persistentvolumeclaims
-  - events
-  - deployments
-  verbs:
-  - '*'
-- apiGroups:
-  - apps
-  resources:
-  - deployments
-  verbs:
-  - '*'
-- apiGroups:
-  - extensions
-  resources:
-  - deployments
-  verbs:
-  - create
-  - get
-  - list
-  - patch
-  - update
-- apiGroups:
-  - ""
-  resources:
-  - secrets
-  verbs:
-  - get
-{{- end }}
diff --git a/charts/cilium/templates/etcd-operator-clusterrolebinding.yaml b/charts/cilium/templates/etcd-operator-clusterrolebinding.yaml
deleted file mode 100644
index f2f36e2..0000000
--- a/charts/cilium/templates/etcd-operator-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if .Values.etcd.managed }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  name: etcd-operator
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: etcd-operator
-subjects:
-- kind: ServiceAccount
-  name: cilium-etcd-sa
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/etcd-operator-serviceaccount.yaml b/charts/cilium/templates/etcd-operator-serviceaccount.yaml
deleted file mode 100644
index 278d984..0000000
--- a/charts/cilium/templates/etcd-operator-serviceaccount.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if .Values.etcd.managed }}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: cilium-etcd-sa
-  namespace: {{ .Release.Namespace }}
-  {{- if .Values.serviceAccounts.etcd.annotations }}
-  annotations:
-{{ toYaml .Values.serviceAccounts.etcd.annotations | indent 4 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ca-configmap.yaml b/charts/cilium/templates/hubble-ca-configmap.yaml
deleted file mode 100644
index 50a05f2..0000000
--- a/charts/cilium/templates/hubble-ca-configmap.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-{{- if and (not .Values.preflight.enabled) .Values.agent .Values.hubble.enabled .Values.hubble.tls.enabled }}
-{{- $hubbleCAProvided := .Values.hubble.tls.ca.cert }}
-{{- $hubbleCAGenerate := and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "helm") .Values.hubble.relay.enabled -}}
-{{- if or $hubbleCAProvided $hubbleCAGenerate }}
-# NOTE: the hubble-ca-cert ConfigMap is deprecated and will be removed in v1.11
-# The Hubble CA certificate can be found in both the hubble-server-certs and
-# hubble-relay-client-certs Secrets under the ca.crt key.
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: hubble-ca-cert
-  namespace: {{ .Release.Namespace }}
-data:
-{{- if $hubbleCAGenerate }}
-{{ include "hubble.ca.gen-cert-only" . | indent 2 }}
-{{- else }}
-  ca.crt: |-
-{{ .Values.hubble.tls.ca.cert | b64dec | indent 4 -}}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-generate-certs-ca-secret.yaml b/charts/cilium/templates/hubble-generate-certs-ca-secret.yaml
deleted file mode 100644
index de579be..0000000
--- a/charts/cilium/templates/hubble-generate-certs-ca-secret.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "cronJob") .Values.hubble.tls.ca.cert .Values.hubble.tls.ca.key }}
----
-apiVersion: v1
-kind: Secret
-metadata:
-  name: hubble-ca-secret
-  namespace: {{ .Release.Namespace }}
-data:
-  ca.crt: {{ .Values.hubble.tls.ca.cert }}
-  ca.key: {{ .Values.hubble.tls.ca.key }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-generate-certs-clusterrole.yaml b/charts/cilium/templates/hubble-generate-certs-clusterrole.yaml
deleted file mode 100644
index fcd2530..0000000
--- a/charts/cilium/templates/hubble-generate-certs-clusterrole.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-{{- if and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "cronJob") .Values.serviceAccounts.hubblecertgen.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: hubble-generate-certs
-rules:
-  - apiGroups:
-      - ""
-    resources:
-      - secrets
-      - configmaps
-    verbs:
-      - create
-  - apiGroups:
-      - ""
-    resources:
-      - secrets
-    resourceNames:
-      - hubble-server-certs
-      - hubble-relay-client-certs
-      - hubble-relay-server-certs
-    verbs:
-      - update
-  - apiGroups:
-      - ""
-    resources:
-      - configmaps
-    resourceNames:
-      - hubble-ca-cert
-    verbs:
-      - update
-  - apiGroups:
-      - ""
-    resources:
-      - secrets
-    resourceNames:
-      - hubble-ca-secret
-    verbs:
-      - get
-      - update
-{{- end }}
diff --git a/charts/cilium/templates/hubble-generate-certs-clusterrolebinding.yaml b/charts/cilium/templates/hubble-generate-certs-clusterrolebinding.yaml
deleted file mode 100644
index 39e57c9..0000000
--- a/charts/cilium/templates/hubble-generate-certs-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "cronJob") .Values.serviceAccounts.hubblecertgen.create }}
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRoleBinding
-metadata:
-  name: hubble-generate-certs
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: hubble-generate-certs
-subjects:
-- kind: ServiceAccount
-  name: {{ .Values.serviceAccounts.hubblecertgen.name | quote }}
-  namespace: {{ .Release.Namespace }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-generate-certs-cronjob.yaml b/charts/cilium/templates/hubble-generate-certs-cronjob.yaml
deleted file mode 100644
index d0c8385..0000000
--- a/charts/cilium/templates/hubble-generate-certs-cronjob.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "cronJob") .Values.hubble.tls.auto.schedule }}
-apiVersion: batch/v1beta1
-kind: CronJob
-metadata:
-  name: hubble-generate-certs
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: hubble-generate-certs
-spec:
-  schedule: {{ .Values.hubble.tls.auto.schedule | quote }}
-  concurrencyPolicy: Forbid
-  jobTemplate:
-{{- include "hubble-generate-certs.job.spec" . | nindent 4 }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-generate-certs-job.yaml b/charts/cilium/templates/hubble-generate-certs-job.yaml
deleted file mode 100644
index e6e9874..0000000
--- a/charts/cilium/templates/hubble-generate-certs-job.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-{{- if and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "cronJob") }}
-{{/*
-Because Kubernetes job specs are immutable, Helm will fail patch this job if
-the spec changes between releases. To avoid breaking the upgrade path, we
-generate a name for the job here which is based on the checksum of the spec.
-This will cause the name of the job to change if its content changes,
-and in turn cause Helm to do delete the old job and replace it with a new one.
-*/}}
-{{- $jobSpec := include "hubble-generate-certs.job.spec" . -}}
-{{- $checkSum := $jobSpec | sha256sum | trunc 10 -}}
-apiVersion: batch/v1
-kind: Job
-metadata:
-  name: hubble-generate-certs-{{$checkSum}}
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: hubble-generate-certs
-{{ $jobSpec }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-generate-certs-serviceaccount.yaml b/charts/cilium/templates/hubble-generate-certs-serviceaccount.yaml
deleted file mode 100644
index b9cd557..0000000
--- a/charts/cilium/templates/hubble-generate-certs-serviceaccount.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "cronJob") .Values.serviceAccounts.hubblecertgen.create }}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.hubblecertgen.name | quote }} 
-  namespace: {{ .Release.Namespace }}
-{{- if .Values.serviceAccounts.hubblecertgen.annotations }}
-  annotations:
-{{ toYaml .Values.serviceAccounts.hubblecertgen.annotations | indent 4 }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-relay-client-tls-secret.yaml b/charts/cilium/templates/hubble-relay-client-tls-secret.yaml
deleted file mode 100644
index 2a9a80c..0000000
--- a/charts/cilium/templates/hubble-relay-client-tls-secret.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if and (.Values.hubble.relay.enabled) (.Values.hubble.tls.enabled) }}
-{{- $clientCertsProvided := and .Values.hubble.tls.ca.cert .Values.hubble.relay.tls.client.cert .Values.hubble.relay.tls.client.key }}
-{{- $hubbleCertsGenerate := and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "helm") -}}
-{{- if or $clientCertsProvided $hubbleCertsGenerate }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: hubble-relay-client-certs
-  namespace: {{ .Release.Namespace }}
-type: kubernetes.io/tls
-data:
-{{- if $hubbleCertsGenerate }}
-{{ include "hubble.relay.gen-certs" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.hubble.tls.ca.cert }}
-  tls.crt: {{ .Values.hubble.relay.tls.client.cert }}
-  tls.key: {{ .Values.hubble.relay.tls.client.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-relay-configmap.yaml b/charts/cilium/templates/hubble-relay-configmap.yaml
deleted file mode 100644
index 0d281a0..0000000
--- a/charts/cilium/templates/hubble-relay-configmap.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-{{- if .Values.hubble.relay.enabled }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: hubble-relay-config
-  namespace: {{ .Release.Namespace }}
-data:
-  config.yaml: |
-    peer-service: unix://{{ .Values.hubble.socketPath }}
-    listen-address: {{ .Values.hubble.relay.listenHost }}:{{ .Values.hubble.relay.listenPort }}
-    dial-timeout: {{ .Values.hubble.relay.dialTimeout }}
-    retry-timeout: {{ .Values.hubble.relay.retryTimeout }}
-    sort-buffer-len-max: {{ .Values.hubble.relay.sortBufferLenMax }}
-    sort-buffer-drain-timeout: {{ .Values.hubble.relay.sortBufferDrainTimeout }}
-{{- if .Values.hubble.tls.enabled }}
-    tls-client-cert-file: /var/lib/hubble-relay/tls/client.crt
-    tls-client-key-file: /var/lib/hubble-relay/tls/client.key
-    tls-hubble-server-ca-files: /var/lib/hubble-relay/tls/hubble-server-ca.crt
-{{- else }}
-    disable-client-tls: true
-{{- end }}
-{{- if .Values.hubble.relay.tls.server.enabled }}
-    tls-server-cert-file: /var/lib/hubble-relay/tls/server.crt
-    tls-server-key-file: /var/lib/hubble-relay/tls/server.key
-{{- else }}
-    disable-server-tls: true
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-relay-deployment.yaml b/charts/cilium/templates/hubble-relay-deployment.yaml
deleted file mode 100644
index e230859..0000000
--- a/charts/cilium/templates/hubble-relay-deployment.yaml
+++ /dev/null
@@ -1,132 +0,0 @@
-{{- if .Values.hubble.relay.enabled }}
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: hubble-relay
-  labels:
-    k8s-app: hubble-relay
-  namespace: {{ .Release.Namespace }}
-spec:
-
-  replicas: {{ .Values.hubble.relay.replicas }}
-  selector:
-    matchLabels:
-      k8s-app: hubble-relay
-{{- with .Values.hubble.relay.updateStrategy }}
-  strategy:
-{{ toYaml .  | trim | indent 4 }}
-{{- end }}
-  template:
-    metadata:
-      annotations:
-{{- if .Values.hubble.relay.rollOutPods }}
-        # ensure pods roll when configmap updates
-        cilium.io/hubble-relay-configmap-checksum: {{ include (print $.Template.BasePath "/hubble-relay-configmap.yaml") . | sha256sum | quote }}
-{{- end }}
-{{- with .Values.hubble.relay.podAnnotations }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        k8s-app: hubble-relay
-{{- with .Values.hubble.relay.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-      affinity:
-        podAffinity:
-          requiredDuringSchedulingIgnoredDuringExecution:
-          - labelSelector:
-              matchExpressions:
-                - key: "k8s-app"
-                  operator: In
-                  values:
-                    - cilium
-            topologyKey: "kubernetes.io/hostname"
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-{{ toYaml .Values.imagePullSecrets | indent 8 }}
-{{- end }}
-      containers:
-        - name: hubble-relay
-          image: "{{ .Values.hubble.relay.image.repository }}:{{ .Values.hubble.relay.image.tag }}{{ if .Values.hubble.relay.image.useDigest }}@{{ .Values.hubble.relay.image.digest }}{{ end }}"
-          imagePullPolicy: {{ .Values.hubble.relay.image.pullPolicy }}
-          command:
-            - hubble-relay
-          args:
-            - serve
-{{- if .Values.debug.enabled }}
-            - "--debug"
-{{- end }}
-          ports:
-            - name: grpc
-              containerPort: {{ .Values.hubble.relay.listenPort }}
-          readinessProbe:
-            tcpSocket:
-              port: grpc
-          livenessProbe:
-            tcpSocket:
-              port: grpc
-{{- with .Values.hubble.relay.resources }}
-          resources:
-            {{- toYaml . | trim | nindent 12 }}
-{{- end }}
-          volumeMounts:
-          - mountPath: {{ dir .Values.hubble.socketPath }}
-            name: hubble-sock-dir
-            readOnly: true
-          - mountPath: /etc/hubble-relay
-            name: config
-            readOnly: true
-{{- if .Values.hubble.tls.enabled }}
-          - mountPath: /var/lib/hubble-relay/tls
-            name: tls
-            readOnly: true
-{{- end }}
-      restartPolicy: Always
-      serviceAccount: {{ .Values.serviceAccounts.relay.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.relay.name | quote }}
-      automountServiceAccountToken: false
-      terminationGracePeriodSeconds: 0
-{{- with .Values.hubble.relay.nodeSelector }}
-      nodeSelector:
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-{{- with .Values.hubble.relay.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-      volumes:
-      - configMap:
-          name: hubble-relay-config
-          items:
-          - key: config.yaml
-            path: config.yaml
-        name: config
-      - hostPath:
-          path: {{ dir .Values.hubble.socketPath }}
-          type: Directory
-        name: hubble-sock-dir
-{{- if .Values.hubble.tls.enabled }}
-      - projected:
-          sources:
-          - secret:
-              name: hubble-relay-client-certs
-              items:
-                - key: ca.crt
-                  path: hubble-server-ca.crt
-                - key: tls.crt
-                  path: client.crt
-                - key: tls.key
-                  path: client.key
-{{- if .Values.hubble.relay.tls.server.enabled }}
-          - secret:
-              name: hubble-relay-server-certs
-              items:
-                - key: tls.crt
-                  path: server.crt
-                - key: tls.key
-                  path: server.key
-{{- end }}
-        name: tls
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-relay-service.yaml b/charts/cilium/templates/hubble-relay-service.yaml
deleted file mode 100644
index d50fa31..0000000
--- a/charts/cilium/templates/hubble-relay-service.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-{{- if .Values.hubble.relay.enabled }}
-kind: Service
-apiVersion: v1
-metadata:
-  name: hubble-relay
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: hubble-relay
-spec:
-  type: ClusterIP
-  selector:
-    k8s-app: hubble-relay
-  ports:
-  - protocol: TCP
-{{- if .Values.hubble.relay.servicePort }}
-    port: {{ .Values.hubble.relay.servicePort }}
-{{- else if .Values.hubble.relay.tls.server.enabled }}
-    port: 443
-{{- else }}
-    port: 80
-{{- end }}
-    targetPort: {{ .Values.hubble.relay.listenPort }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-relay-serviceaccount.yaml b/charts/cilium/templates/hubble-relay-serviceaccount.yaml
deleted file mode 100644
index 25ea262..0000000
--- a/charts/cilium/templates/hubble-relay-serviceaccount.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if and (.Values.hubble.relay.enabled) (.Values.serviceAccounts.relay.create) -}}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.relay.name | quote }}
-  namespace: {{ .Release.Namespace }}
-  {{- with .Values.serviceAccounts.relay.annotations }}
-  annotations:
-    {{- toYaml . | nindent 4 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-relay-tls-server-secret.yaml b/charts/cilium/templates/hubble-relay-tls-server-secret.yaml
deleted file mode 100644
index e07d00a..0000000
--- a/charts/cilium/templates/hubble-relay-tls-server-secret.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if and (.Values.hubble.relay.enabled) (.Values.hubble.relay.tls.server.enabled) }}
-{{- $serverCertsProvided := and .Values.hubble.tls.ca.cert .Values.hubble.relay.tls.server.cert .Values.hubble.relay.tls.server.key -}}
-{{- $hubbleCertsGenerate := and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "helm") -}}
-{{- if or $serverCertsProvided $hubbleCertsGenerate }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: hubble-relay-server-certs
-  namespace: {{ .Release.Namespace }}
-type: kubernetes.io/tls
-data:
-{{- if $hubbleCertsGenerate }}
-{{ include "hubble.relay.gen-certs" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.hubble.tls.ca.cert }}
-  tls.crt: {{ .Values.hubble.relay.tls.server.cert }}
-  tls.key: {{ .Values.hubble.relay.tls.server.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-server-secret.yaml b/charts/cilium/templates/hubble-server-secret.yaml
deleted file mode 100644
index 1cdb806..0000000
--- a/charts/cilium/templates/hubble-server-secret.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-{{- if and .Values.agent (not .Values.preflight.enabled) .Values.hubble.enabled .Values.hubble.tls.enabled }}
-{{- $hubbleCertsProvided := and .Values.hubble.tls.ca.cert .Values.hubble.tls.server.cert .Values.hubble.tls.server.key }}
-{{- $hubbleCertsGenerate := and .Values.hubble.tls.auto.enabled (eq .Values.hubble.tls.auto.method "helm") .Values.hubble.relay.enabled -}}
-{{- if or $hubbleCertsProvided $hubbleCertsGenerate }}
-apiVersion: v1
-kind: Secret
-metadata:
-  name: hubble-server-certs
-  namespace: {{ .Release.Namespace }}
-type: kubernetes.io/tls
-data:
-{{- if $hubbleCertsGenerate }}
-{{ include "hubble.server.gen-certs" . | indent 2 }}
-{{- else }}
-  ca.crt: {{ .Values.hubble.tls.ca.cert }}
-  tls.crt: {{ .Values.hubble.tls.server.cert }}
-  tls.key: {{ .Values.hubble.tls.server.key }}
-{{- end }}
-{{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ui-clusterrole.yaml b/charts/cilium/templates/hubble-ui-clusterrole.yaml
deleted file mode 100644
index fc4aa2f..0000000
--- a/charts/cilium/templates/hubble-ui-clusterrole.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-{{- if and (.Values.hubble.ui.enabled) (.Values.serviceAccounts.ui.create) }}
-kind: ClusterRole
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: hubble-ui
-rules:
-  - apiGroups:
-      - networking.k8s.io
-    resources:
-      - networkpolicies
-    verbs:
-      - get
-      - list
-      - watch
-  - apiGroups:
-      - ""
-    resources:
-      - componentstatuses
-      - endpoints
-      - namespaces
-      - nodes
-      - pods
-      - services
-    verbs:
-      - get
-      - list
-      - watch
-  - apiGroups:
-      - apiextensions.k8s.io
-    resources:
-      - customresourcedefinitions
-    verbs:
-      - get
-      - list
-      - watch
-  - apiGroups:
-      - cilium.io
-    resources:
-      - "*"
-    verbs:
-      - get
-      - list
-      - watch
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ui-clusterrolebinding.yaml b/charts/cilium/templates/hubble-ui-clusterrolebinding.yaml
deleted file mode 100644
index 455a83d..0000000
--- a/charts/cilium/templates/hubble-ui-clusterrolebinding.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-{{- if and (.Values.hubble.ui.enabled) (.Values.serviceAccounts.ui.create) }}
-kind: ClusterRoleBinding
-apiVersion: rbac.authorization.k8s.io/v1
-metadata:
-  name: hubble-ui
-roleRef:
-  apiGroup: rbac.authorization.k8s.io
-  kind: ClusterRole
-  name: hubble-ui
-subjects:
-- kind: ServiceAccount
-  namespace: {{ .Release.Namespace }}
-  name: {{ .Values.serviceAccounts.ui.name | quote }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ui-configmap.yaml b/charts/cilium/templates/hubble-ui-configmap.yaml
deleted file mode 100644
index 3739516..0000000
--- a/charts/cilium/templates/hubble-ui-configmap.yaml
+++ /dev/null
@@ -1,10 +0,0 @@
-{{- if .Values.hubble.ui.enabled }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: hubble-ui-envoy
-  namespace: {{ .Release.Namespace }}
-data:
-{{ (.Files.Glob "files/envoy/*").AsConfig | indent 2 }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ui-deployment.yaml b/charts/cilium/templates/hubble-ui-deployment.yaml
deleted file mode 100644
index 967af00..0000000
--- a/charts/cilium/templates/hubble-ui-deployment.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-{{- if .Values.hubble.ui.enabled }}
-kind: Deployment
-apiVersion: apps/v1
-metadata:
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: hubble-ui
-  name: hubble-ui
-spec:
-  replicas: {{ .Values.hubble.ui.replicas }}
-  selector:
-    matchLabels:
-      k8s-app: hubble-ui
-  template:
-    metadata:
-      annotations:
-{{- if .Values.hubble.ui.rollOutPods }}
-        # ensure pods roll when configmap updates
-        cilium.io/hubble-ui-envoy-configmap-checksum: {{ include (print $.Template.BasePath "/hubble-ui-configmap.yaml") . | sha256sum | quote }}
-{{- end }}
-{{- with .Values.hubble.ui.podAnnotations }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-      labels:
-        k8s-app: hubble-ui
-{{- with .Values.hubble.ui.podLabels }}
-        {{- toYaml . | nindent 8 }}
-{{- end }}
-    spec:
-      {{- if .Values.hubble.ui.securityContext.enabled }}
-      securityContext:
-        runAsUser: 1001
-      {{- end }}
-      serviceAccount: {{ .Values.serviceAccounts.ui.name | quote }}
-      serviceAccountName: {{ .Values.serviceAccounts.ui.name | quote }}
-{{- with .Values.hubble.ui.nodeSelector }}
-      nodeSelector:
-        {{- toYaml . | trim | nindent 8 }}
-{{- end }}
-{{- with .Values.hubble.ui.tolerations }}
-      tolerations:
-      {{- toYaml . | trim | nindent 6 }}
-{{- end }}
-{{- if .Values.imagePullSecrets }}
-      imagePullSecrets:
-{{ toYaml .Values.imagePullSecrets | indent 6 }}
-{{- end }}
-      containers:
-        - name: frontend
-          image: "{{ .Values.hubble.ui.frontend.image.repository }}:{{ .Values.hubble.ui.frontend.image.tag }}"
-          imagePullPolicy: {{ .Values.hubble.ui.frontend.image.pullPolicy }}
-          ports:
-            - containerPort: 8080
-              name: http
-          resources:
-            {{- toYaml .Values.hubble.ui.frontend.resources | trim | nindent 12 }}
-        - name: backend
-          image: "{{ .Values.hubble.ui.backend.image.repository }}:{{ .Values.hubble.ui.backend.image.tag }}"
-          imagePullPolicy: {{ .Values.hubble.ui.backend.image.pullPolicy }}
-          env:
-            - name: EVENTS_SERVER_PORT
-              value: "8090"
-            - name: FLOWS_API_ADDR
-              value: "hubble-relay:80"
-          ports:
-            - containerPort: 8090
-              name: grpc
-          resources:
-            {{- toYaml .Values.hubble.ui.backend.resources  | trim | nindent 12 }}
-        - name: proxy
-          image: "{{ .Values.hubble.ui.proxy.image.repository }}:{{ .Values.hubble.ui.proxy.image.tag }}"
-          imagePullPolicy: {{ .Values.hubble.ui.proxy.image.pullPolicy }}
-          ports:
-            - containerPort: 8081
-              name: http
-          resources:
-          {{- toYaml .Values.hubble.ui.proxy.resources | trim | nindent 12 }}
-          command: ["envoy"]
-          args:
-            [
-              "-c",
-              "/etc/envoy.yaml",
-              "-l",
-              "info"
-            ]
-          volumeMounts:
-            - name: hubble-ui-envoy-yaml
-              mountPath: /etc/envoy.yaml
-              subPath: envoy.yaml
-      volumes:
-        - name: hubble-ui-envoy-yaml
-          configMap:
-            name: hubble-ui-envoy
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ui-ingress.yaml b/charts/cilium/templates/hubble-ui-ingress.yaml
deleted file mode 100644
index f67a423..0000000
--- a/charts/cilium/templates/hubble-ui-ingress.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-{{- if and (.Values.hubble.ui.enabled) (.Values.hubble.ui.ingress.enabled) -}}
-apiVersion: {{ template "ingress.apiVersion" . }}
-kind: Ingress
-metadata:
-  name: hubble-ui
-  namespace: {{ .Release.Namespace }}
-  labels:
-    k8s-app: hubble-ui
-{{- with .Values.hubble.ui.ingress.annotations }}
-  annotations:
-{{ toYaml . | indent 4 }}
-{{- end }}
-spec:
-{{- if .Values.hubble.ui.ingress.tls }}
-  tls:
-{{ toYaml .Values.hubble.ui.ingress.tls | indent 4 }}
-{{- end }}
-  rules:
-  {{- range .Values.hubble.ui.ingress.hosts }}
-    - host: {{ . }}
-      http:
-        paths:
-          - path: /
-{{ include "ingress.paths" $ | indent 12 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ui-service.yaml b/charts/cilium/templates/hubble-ui-service.yaml
deleted file mode 100644
index 5aa701d..0000000
--- a/charts/cilium/templates/hubble-ui-service.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-{{- if .Values.hubble.ui.enabled }}
-kind: Service
-apiVersion: v1
-metadata:
-  name: hubble-ui
-  labels:
-    k8s-app: hubble-ui
-  namespace: {{ .Release.Namespace }}
-spec:
-  selector:
-    k8s-app: hubble-ui
-  ports:
-    - name: http
-      port: 80
-      targetPort: 8081
-  type: ClusterIP
-{{- end }}
diff --git a/charts/cilium/templates/hubble-ui-serviceaccount.yaml b/charts/cilium/templates/hubble-ui-serviceaccount.yaml
deleted file mode 100644
index 0b4a85d..0000000
--- a/charts/cilium/templates/hubble-ui-serviceaccount.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if and (.Values.hubble.ui.enabled) (.Values.serviceAccounts.ui.create) -}}
-apiVersion: v1
-kind: ServiceAccount
-metadata:
-  name: {{ .Values.serviceAccounts.ui.name | quote }}
-  namespace: {{ .Release.Namespace }}
-  {{- with .Values.serviceAccounts.ui.annotations }}
-  annotations:
-    {{- toYaml . | nindent 4 }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/templates/validate.yaml b/charts/cilium/templates/validate.yaml
deleted file mode 100644
index 1e9cbb8..0000000
--- a/charts/cilium/templates/validate.yaml
+++ /dev/null
@@ -1,18 +0,0 @@
-{{/* validate hubble config */}}
-{{- if .Values.hubble.ui.enabled }}
-  {{- if not .Values.hubble.relay.enabled }}
-    {{ fail "Hubble UI requires .Values.hubble.relay.enabled=true" }}
-  {{- end }}
-{{- end }}
-{{- if .Values.hubble.relay.enabled }}
-  {{- if not .Values.hubble.enabled }}
-    {{ fail "Hubble Relay requires .Values.hubble.enabled=true" }}
-  {{- end }}
-{{- end }}
-
-{{/* validate service monitoring CRDs */}}
-{{- if and (.Values.prometheus.enabled) (or (.Values.prometheus.serviceMonitor.enabled) (.Values.operator.prometheus.serviceMonitor.enabled)) }}
-  {{- if not (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") }}
-      {{ fail "Service Monitor requires monitoring.coreos.com/v1 CRDs. Please refer to https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml" }}
-  {{- end }}
-{{- end }}
diff --git a/charts/cilium/values.yaml b/charts/cilium/values.yaml
deleted file mode 100644
index ff1e3b9..0000000
--- a/charts/cilium/values.yaml
+++ /dev/null
@@ -1,1697 +0,0 @@
-# upgradeCompatibility helps users upgrading to ensure that the configMap for
-# Cilium will not change critical values to ensure continued operation
-# This is flag is not required for new installations.
-# For example: 1.7, 1.8, 1.9
-# upgradeCompatibility: '1.8'
-
-debug:
-  # -- Enable debug logging
-  enabled: false
-  # verbose:
-
-rbac:
-  # -- Enable creation of Resource-Based Access Control configuration.
-  create: true
-
-# -- Configure image pull secrets for pulling container images
-imagePullSecrets:
-# - name: "image-pull-secret"
-
-# kubeConfigPath: ~/.kube/config
-# k8sServiceHost:
-# k8sServicePort:
-
-cluster:
-  # -- Name of the cluster. Only required for Cluster Mesh.
-  name: default
-  # -- (int) Unique ID of the cluster. Must be unique across all connected
-  # clusters and in the range of 1 to 255. Only required for Cluster Mesh.
-  id:
-
-# -- Define serviceAccount names for components.
-# @default -- Component's fully qualified name.
-serviceAccounts:
-  cilium:
-    create: true
-    name: cilium
-    annotations: {}
-  etcd:
-    create: true
-    name: cilium-etcd-operator
-    annotations: {}
-  operator:
-    create: true
-    name: cilium-operator
-    annotations: {}
-  preflight:
-    create: true
-    name: cilium-pre-flight 
-    annotations: {}
-  relay:
-    create: true
-    name: hubble-relay
-    annotations: {}
-  ui:
-    create: true
-    name: hubble-ui
-    annotations: {}
-  clustermeshApiserver:
-    create: true
-    name: clustermesh-apiserver
-    annotations: {}
-  # -- Clustermeshcertgen is used if clustermesh.apiserver.tls.auto.method=cronJob
-  clustermeshcertgen:
-    create: true
-    name: clustermesh-apiserver-generate-certs
-    annotations: {}
-  # -- Hubblecertgen is used if hubble.tls.auto.method=cronJob
-  hubblecertgen:
-    create: true
-    name: hubble-generate-certs
-    annotations: {}
-
-# -- Install the cilium agent resources.
-agent: true
-
-# -- Agent container name.
-name: cilium
-
-# -- Roll out cilium agent pods automatically when configmap is updated.
-rollOutCiliumPods: false
-
-# -- Agent container image.
-image:
-  repository: quay.io/cilium/cilium
-  tag: v1.10.7
-  pullPolicy: IfNotPresent
-  # cilium-digest
-  digest: "sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca"
-  useDigest: true
-
-# -- Pod affinity for cilium-agent.
-affinity:
-  nodeAffinity:
-    requiredDuringSchedulingIgnoredDuringExecution:
-      nodeSelectorTerms:
-        - matchExpressions:
-            - key: kubernetes.io/os
-              operator: In
-              values:
-                - linux
-        # Compatible with Kubernetes 1.12.x and 1.13.x
-        - matchExpressions:
-            - key: beta.kubernetes.io/os
-              operator: In
-              values:
-                - linux
-  podAntiAffinity:
-    requiredDuringSchedulingIgnoredDuringExecution:
-    - labelSelector:
-        matchExpressions:
-        - key: k8s-app
-          operator: In
-          values:
-          - cilium
-      topologyKey: kubernetes.io/hostname
-
-# -- The priority class to use for cilium-agent.
-priorityClassName: ""
-
-# -- Additional agent container arguments.
-extraArgs: []
-
-# -- Additional agent container environment variables.
-extraEnv: {}
-
-# -- Additional InitContainers to initialize the pod.
-extraInitContainers: []
-
-# -- Additional agent hostPath mounts.
-extraHostPathMounts: []
-  # - name: host-mnt-data
-  #   mountPath: /host/mnt/data
-  #   hostPath: /mnt/data
-  #   hostPathType: Directory
-  #   readOnly: true
-  #   mountPropagation: HostToContainer
-
-# -- Additional agent ConfigMap mounts.
-extraConfigmapMounts: []
-  # - name: certs-configmap
-  #   mountPath: /certs
-  #   configMap: certs-configmap
-  #   readOnly: true
-
-# -- extraConfig allows you to specify additional configuration parameters to be
-# included in the cilium-config configmap.
-extraConfig: {}
-#  my-config-a: "1234"
-#  my-config-b: |-
-#    test 1
-#    test 2
-#    test 3
-
-# -- Node tolerations for agent scheduling to nodes with taints
-# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-tolerations:
-- operator: Exists
-  # - key: "key"
-  #   operator: "Equal|Exists"
-  #   value: "value"
-  #   effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
-# -- Annotations to be added to agent pods
-podAnnotations: {}
-
-# -- Labels to be added to agent pods
-podLabels: {}
-
-# -- PodDisruptionBudget settings
-# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
-podDisruptionBudget:
-  enabled: true
-  maxUnavailable: 2
-
-# -- Agent resource limits & requests
-# ref: https://kubernetes.io/docs/user-guide/compute-resources/
-resources: {}
-  # limits:
-  #   cpu: 4000m
-  #   memory: 4Gi
-  # requests:
-  #   cpu: 100m
-  #   memory: 512Mi
-
-# -- Security context to be added to agent pods
-securityContext: {}
-  # runAsUser: 0
-
-# -- Cilium agent update strategy
-updateStrategy:
-  rollingUpdate:
-    maxUnavailable: 2
-  type: RollingUpdate
-
-# Configuration Values for cilium-agent
-
-# -- Enable installation of PodCIDR routes between worker
-# nodes if worker nodes share a common L2 network segment.
-autoDirectNodeRoutes: false
-
-azure:
-  # -- Enable Azure integration
-  enabled: false
-  # resourceGroup: group1
-  # subscriptionID: 00000000-0000-0000-0000-000000000000
-  # tenantID: 00000000-0000-0000-0000-000000000000
-  # clientID: 00000000-0000-0000-0000-000000000000
-  # clientSecret: 00000000-0000-0000-0000-000000000000
-  # userAssignedIdentityID: 00000000-0000-0000-0000-000000000000
-
-alibabacloud:
-  # -- Enable AlibabaCloud ENI integration
-  enabled: false
-
-# -- Optimize TCP and UDP workloads and enable rate-limiting traffic from
-# individual Pods with EDT (Earliest Departure Time)
-# through the "kubernetes.io/egress-bandwidth" Pod annotation.
-bandwidthManager: false
-
-# -- Configure BGP
-bgp:
-  # -- Enable BGP support inside Cilium; embeds a new ConfigMap for BGP inside
-  # cilium-agent and cilium-operator
-  enabled: false
-  announce:
-    # -- Enable allocation and announcement of service LoadBalancer IPs
-    loadbalancerIP: false
-
-bpf:
-  # -- Enable BPF clock source probing for more efficient tick retrieval.
-  clockProbe: false
-
-  # -- Enables pre-allocation of eBPF map values. This increases
-  # memory usage but can reduce latency.
-  preallocateMaps: false
-
-  # -- Configure the maximum number of entries in the TCP connection tracking
-  # table.
-  # ctTcpMax: '524288'
-
-  # -- Configure the maximum number of entries for the non-TCP connection
-  # tracking table.
-  # ctAnyMax: '262144'
-
-  # -- Configure the maximum number of service entries in the
-  # load balancer maps.
-  lbMapMax: 65536
-
-  # -- Configure the maximum number of entries for the NAT table.
-  # natMax: 524288
-
-  # -- Configure the maximum number of entries for the neighbor table.
-  # neighMax: 524288
-
-  # -- Configure the maximum number of entries in endpoint policy map (per endpoint).
-  policyMapMax: 16384
-
-  # -- Configure auto-sizing for all BPF maps based on available memory.
-  # ref: https://docs.cilium.io/en/stable/concepts/ebpf/maps/#ebpf-maps
-  #mapDynamicSizeRatio: 0.0025
-
-  # -- Configure the level of aggregation for monitor notifications.
-  # Valid options are none, low, medium, maximum.
-  monitorAggregation: medium
-
-  # -- Configure the typical time between monitor notifications for
-  # active connections.
-  monitorInterval: "5s"
-
-  # -- Configure which TCP flags trigger notifications when seen for the
-  # first time in a connection.
-  monitorFlags: "all"
-
-  # -- Allow cluster external access to ClusterIP services.
-  lbExternalClusterIP: false
-
-  # -- Enable native IP masquerade support in eBPF
-  #masquerade: false
-
-  # -- Configure whether direct routing mode should route traffic via
-  # host stack (true) or directly and more efficiently out of BPF (false) if
-  # the kernel supports it. The latter has the implication that it will also
-  # bypass netfilter in the host namespace.
-  #hostRouting: true
-
-  # -- Configure the eBPF-based TPROXY to reduce reliance on iptables rules
-  # for implementing Layer 7 policy.
-  # tproxy: true
-
-  # -- Configure the FIB lookup bypass optimization for nodeport reverse
-  # NAT handling.
-  # lbBypassFIBLookup: true
-
-# -- Clean all eBPF datapath state from the initContainer of the cilium-agent
-# DaemonSet.
-#
-# WARNING: Use with care!
-cleanBpfState: false
-
-# -- Clean all local Cilium state from the initContainer of the cilium-agent
-# DaemonSet. Implies cleanBpfState: true.
-#
-# WARNING: Use with care!
-cleanState: false
-
-cni:
-  # -- Install the CNI configuration and binary files into the filesystem.
-  install: true
-
-  # -- Configure chaining on top of other CNI plugins. Possible values:
-  #  - none
-  #  - generic-veth
-  #  - aws-cni
-  #  - portmap
-  chainingMode: none
-
-  # -- Make Cilium take ownership over the `/etc/cni/net.d` directory on the
-  # node, renaming all non-Cilium CNI configurations to `*.cilium_bak`.
-  # This ensures no Pods can be scheduled using other CNI plugins during Cilium
-  # agent downtime.
-  exclusive: true
-
-  # -- Skip writing of the CNI configuration. This can be used if
-  # writing of the CNI configuration is performed by external automation.
-  customConf: false
-
-  # -- Configure the path to the CNI configuration directory on the host.
-  confPath: /etc/cni/net.d
-
-  # -- Configure the path to the CNI binary directory on the host.
-  binPath: /opt/cni/bin
-
-  # -- Specify the path to a CNI config to read from on agent start.
-  # This can be useful if you want to manage your CNI
-  # configuration outside of a Kubernetes environment. This parameter is
-  # mutually exclusive with the 'cni.configMap' parameter.
-  # readCniConf: /host/etc/cni/net.d/05-cilium.conf
-
-  # -- When defined, configMap will mount the provided value as ConfigMap and
-  # interpret the cniConf variable as CNI configuration file and write it
-  # when the agent starts up
-  # configMap: cni-configuration
-
-  # -- Configure the key in the CNI ConfigMap to read the contents of
-  # the CNI configuration from.
-  configMapKey: cni-config
-
-  # -- Configure the path to where to mount the ConfigMap inside the agent pod.
-  confFileMountPath: /tmp/cni-configuration
-
-  # -- Configure the path to where the CNI configuration directory is mounted
-  # inside the agent pod.
-  hostConfDirMountPath: /host/etc/cni/net.d
-
-# -- Configure how frequently garbage collection should occur for the datapath
-# connection tracking table.
-# conntrackGCInterval: "0s"
-
-# -- Configure container runtime specific integration.
-containerRuntime:
-  # -- Enables specific integrations for container runtimes.
-  # Supported values:
-  # - containerd
-  # - crio
-  # - docker
-  # - none
-  # - auto (automatically detect the container runtime)
-  integration: none
-  # -- Configure the path to the container runtime control socket.
-  # socketPath: /path/to/runtime.sock
-
-# crdWaitTimeout: ""
-
-# -- Tail call hooks for custom eBPF programs.
-customCalls:
-  # -- Enable tail call hooks for custom eBPF programs.
-  enabled: false
-
-# -- Configure which datapath mode should be used for configuring container
-# connectivity. Valid options are "veth" or "ipvlan".
-datapathMode: veth
-
-daemon:
-  # -- Configure where Cilium runtime state should be stored.
-  runPath: "/var/run/cilium"
-
-# -- Specify which network interfaces can run the eBPF datapath. This means
-# that a packet sent from a pod to a destination outside the cluster will be
-# masqueraded (to an output device IPv4 address), if the output device runs the
-# program. When not specified, probing will automatically detect devices.
-# devices: ""
-
-# -- Chains to ignore when installing feeder rules.
-# disableIptablesFeederRules: ""
-
-# -- Limit egress masquerading to interface selector.
-# egressMasqueradeInterfaces: ""
-
-# -- Whether to enable CNP status updates.
-enableCnpStatusUpdates: false
-
-# -- Configures the use of the KVStore to optimize Kubernetes event handling by
-# mirroring it into the KVstore for reduced overhead in large clusters.
-enableK8sEventHandover: false
-
-# TODO: Add documentation
-# enableIdentityMark: false
-
-# enableK8sEndpointSlice: false
-
-# -- Enables the fallback compatibility solution for when the xt_socket kernel
-# module is missing and it is needed for the datapath L7 redirection to work
-# properly. See documentation for details on when this can be disabled:
-# http://docs.cilium.io/en/stable/install/system_requirements/#admin-kernel-version.
-enableXTSocketFallback: true
-
-encryption:
-  # -- Enable transparent network encryption.
-  enabled: false
-
-  # -- Encryption method. Can be either ipsec or wireguard.
-  type: ipsec
-
-  # -- Enable encryption for pure node to node traffic.
-  # This option is only effective when encryption.type is set to ipsec.
-  nodeEncryption: false
-
-  ipsec:
-    # -- Name of the key file inside the Kubernetes secret configured via secretName.
-    keyFile: ""
-
-    # -- Path to mount the secret inside the Cilium pod.
-    mountPath: ""
-
-    # -- Name of the Kubernetes secret containing the encryption keys.
-    secretName: ""
-
-    # -- The interface to use for encrypted traffic.
-    interface: ""
-
-  # -- Deprecated in favor of encryption.ipsec.keyFile.
-  # Name of the key file inside the Kubernetes secret configured via secretName.
-  # This option is only effective when encryption.type is set to ipsec.
-  keyFile: keys
-
-  # -- Deprecated in favor of encryption.ipsec.mountPath.
-  # Path to mount the secret inside the Cilium pod.
-  # This option is only effective when encryption.type is set to ipsec.
-  mountPath: /etc/ipsec
-
-  # -- Deprecated in favor of encryption.ipsec.secretName.
-  # Name of the Kubernetes secret containing the encryption keys.
-  # This option is only effective when encryption.type is set to ipsec.
-  secretName: cilium-ipsec-keys
-
-  # -- Deprecated in favor of encryption.ipsec.interface.
-  # The interface to use for encrypted traffic.
-  # This option is only effective when encryption.type is set to ipsec.
-  interface: ""
-
-endpointHealthChecking:
-  # -- Enable connectivity health checking between virtual endpoints.
-  enabled: true
-
-# -- Enable endpoint status.
-# Status can be: policy, health, controllers, logs and / or state. For 2 or more options use a comma.
-endpointStatus:
-  enabled: false
-  status: ""
-
-endpointRoutes:
-  # -- Enable use of per endpoint routes instead of routing via
-  # the cilium_host interface.
-  enabled: false
-
-eni:
-  # -- Enable Elastic Network Interface (ENI) integration.
-  enabled: false
-  # -- Update ENI Adapter limits from the EC2 API
-  updateEC2AdapterLimitViaAPI: false
-  # -- Release IPs not used from the ENI
-  awsReleaseExcessIPs: false
-  # -- EC2 API endpoint to use
-  ec2APIEndpoint: ""
-  # -- Tags to apply to the newly created ENIs
-  eniTags: {}
-  # -- If using IAM role for Service Accounts will not try to
-  # inject identity values from cilium-aws kubernetes secret.
-  # Adds annotation to service account if managed by Helm.
-  # See https://github.com/aws/amazon-eks-pod-identity-webhook
-  iamRole: ""
-  # -- Filter via subnet IDs which will dictate which subnets are going to be used to create new ENIs
-  subnetIDsFilter: ""
-  # -- Filter via tags (k=v) which will dictate which subnets are going to be used to create new ENIs
-  subnetTagsFilter: ""
-
-externalIPs:
-  # -- Enable ExternalIPs service support.
-  enabled: false
-
-# fragmentTracking enables IPv4 fragment tracking support in the datapath.
-# fragmentTracking: true
-
-gke:
-  # -- Enable Google Kubernetes Engine integration
-  enabled: false
-
-# -- Enable connectivity health checking.
-healthChecking: true
-
-# -- TCP port for the agent health API. This is not the port for cilium-health.
-healthPort: 9876
-
-# -- Enables the enforcement of host policies in the eBPF datapath.
-hostFirewall: false
-
-hostPort:
-  # -- Enable hostPort service support.
-  enabled: false
-
-# -- Configure ClusterIP service handling in the host namespace (the node).
-hostServices:
-  # -- Enable host reachable services.
-  enabled: false
-
-  # -- Supported list of protocols to apply ClusterIP translation to.
-  protocols: tcp,udp
-
-  # -- Disable socket lb for non-root ns. This is used to enable Istio routing rules.
-  # hostNamespaceOnly: false
-
-# -- Configure certificate generation for Hubble integration.
-# If hubble.tls.auto.method=cronJob, these values are used
-# for the Kubernetes CronJob which will be scheduled regularly to
-# (re)generate any certificates not provided manually.
-certgen:
-  image:
-    repository: quay.io/cilium/certgen
-    tag: v0.1.5
-    pullPolicy: IfNotPresent
-  # -- Seconds after which the completed job pod will be deleted
-  ttlSecondsAfterFinished: 1800
-  # -- Labels to be added to hubble-certgen pods
-  podLabels: {}
-
-hubble:
-  # -- Enable Hubble (true by default).
-  enabled: true
-
-  # -- Buffer size of the channel Hubble uses to receive monitor events. If this
-  # value is not set, the queue size is set to the default monitor queue size.
-  # eventQueueSize: ""
-
-  # -- Number of recent flows for Hubble to cache. Defaults to 4095.
-  # Possible values are:
-  #   1, 3, 7, 15, 31, 63, 127, 255, 511, 1023,
-  #   2047, 4095, 8191, 16383, 32767, 65535
-  # eventBufferCapacity: "4095"
-
-  # -- Hubble metrics configuration.
-  # See https://docs.cilium.io/en/stable/configuration/metrics/#hubble-metrics
-  # for more comprehensive documentation about Hubble metrics.
-  metrics:
-    # -- Configures the list of metrics to collect. If empty or null, metrics
-    # are disabled.
-    # Example:
-    #
-    #   enabled:
-    #   - dns:query;ignoreAAAA
-    #   - drop
-    #   - tcp
-    #   - flow
-    #   - icmp
-    #   - http
-    #
-    # You can specify the list of metrics from the helm CLI:
-    #
-    #   --set metrics.enabled="{dns:query;ignoreAAAA,drop,tcp,flow,icmp,http}"
-    #
-    enabled: ~
-    # -- Configure the port the hubble metric server listens on.
-    port: 9091
-    serviceMonitor:
-      # -- Create ServiceMonitor resources for Prometheus Operator.
-      # This requires the prometheus CRDs to be available.
-      # ref: https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml)
-      enabled: false
-      # -- Labels to add to ServiceMonitor hubble
-      labels: {}
-
-  # -- Unix domain socket path to listen to when Hubble is enabled.
-  socketPath: /var/run/cilium/hubble.sock
-
-  # -- An additional address for Hubble to listen to.
-  # Set this field ":4244" if you are enabling Hubble Relay, as it assumes that
-  # Hubble is listening on port 4244.
-  listenAddress: ":4244"
-
-  # -- TLS configuration for Hubble
-  tls:
-    # -- Enable mutual TLS for listenAddress. Setting this value to false is
-    # highly discouraged as the Hubble API provides access to potentially
-    # sensitive network flow metadata and is exposed on the host network.
-    enabled: true
-    # -- Configure automatic TLS certificates generation.
-    auto:
-      # -- Auto-generate certificates.
-      # When set to true, automatically generate a CA and certificates to
-      # enable mTLS between Hubble server and Hubble Relay instances. If set to
-      # false, the certs for Hubble server need to be provided by setting
-      # appropriate values below.
-      enabled: true
-      # -- Set the method to auto-generate certificates. Supported values:
-      # - helm:      This method uses Helm to generate all certificates.
-      # - cronJob:   This method uses a Kubernetes CronJob the generate any
-      #              certificates not provided by the user at installation
-      #              time.
-      method: helm
-      # -- Generated certificates validity duration in days.
-      certValidityDuration: 1095
-      # -- Schedule for certificates regeneration (regardless of their expiration date).
-      # Only used if method is "cronJob". If nil, then no recurring job will be created.
-      # Instead, only the one-shot job is deployed to generate the certificates at
-      # installation time.
-      #
-      # Defaults to midnight of the first day of every fourth month. For syntax, see
-      # https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule
-      schedule: "0 0 1 */4 *"
-    # -- base64 encoded PEM values for the Hubble CA certificate and private key.
-    ca:
-      cert: ""
-      # -- The CA private key (optional). If it is provided, then it will be
-      # used by hubble.tls.auto.method=cronJob to generate all other certificates.
-      # Otherwise, a ephemeral CA is generated if hubble.tls.auto.enabled=true.
-      key: ""
-    # -- base64 encoded PEM values for the Hubble server certificate and private key
-    server:
-      cert: ""
-      key: ""
-
-  relay:
-    # -- Enable Hubble Relay (requires hubble.enabled=true)
-    enabled: false
-
-    # -- Roll out Hubble Relay pods automatically when configmap is updated.
-    rollOutPods: false
-
-    # -- Hubble-relay container image.
-    image:
-      repository: quay.io/cilium/hubble-relay
-      tag: v1.10.7
-       # hubble-relay-digest
-      digest: "sha256:385fcc4fa315eb6b66626c3e5f607b6b6514c8c3a863c47c2b2dbc97790acb47"
-      useDigest: true
-      pullPolicy: IfNotPresent
-
-    # -- Specifies the resources for the hubble-relay pods
-    resources: {}
-
-    # -- Number of replicas run for the hubble-relay deployment.
-    replicas: 1
-
-    # -- Node labels for pod assignment
-    # ref: https://kubernetes.io/docs/user-guide/node-selection/
-    nodeSelector: {}
-
-    # -- Annotations to be added to hubble-relay pods
-    podAnnotations: {}
-
-    # -- Labels to be added to hubble-relay pods
-    podLabels: {}
-
-    # -- Node tolerations for pod assignment on nodes with taints
-    # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-    #
-    tolerations: []
-
-    # -- hubble-relay update strategy
-    updateStrategy:
-      rollingUpdate:
-        maxUnavailable: 1
-      type: RollingUpdate
-
-    # -- Host to listen to. Specify an empty string to bind to all the interfaces.
-    listenHost: ""
-
-    # -- Port to listen to.
-    listenPort: "4245"
-
-    # -- TLS configuration for Hubble Relay
-    tls:
-      # -- base64 encoded PEM values for the hubble-relay client certificate and private key
-      # This keypair is presented to Hubble server instances for mTLS
-      # authentication and is required when hubble.tls.enabled is true.
-      # These values need to be set manually if hubble.tls.auto.enabled is false.
-      client:
-        cert: ""
-        key: ""
-      # -- base64 encoded PEM values for the hubble-relay server certificate and private key
-      server:
-        # When set to true, enable TLS on for Hubble Relay server
-        # (ie: for clients connecting to the Hubble Relay API).
-        enabled: false
-        # These values need to be set manually if hubble.tls.auto.enabled is false.
-        cert: ""
-        key: ""
-
-    # -- Dial timeout to connect to the local hubble instance to receive peer information (e.g. "30s").
-    dialTimeout: ~
-
-    # -- Backoff duration to retry connecting to the local hubble instance in case of failure (e.g. "30s").
-    retryTimeout: ~
-
-    # -- Max number of flows that can be buffered for sorting before being sent to the
-    # client (per request) (e.g. 100).
-    sortBufferLenMax: ~
-
-    # -- When the per-request flows sort buffer is not full, a flow is drained every
-    # time this timeout is reached (only affects requests in follow-mode) (e.g. "1s").
-    sortBufferDrainTimeout: ~
-
-    # -- Port to use for the k8s service backed by hubble-relay pods.
-    # If not set, it is dynamically assigned to port 443 if TLS is enabled and to
-    # port 80 if not.
-    # servicePort: 80
-
-  ui:
-    # -- Whether to enable the Hubble UI.
-    enabled: false
-
-    # -- Roll out Hubble-ui pods automatically when configmap is updated.
-    rollOutPods: false
-
-    backend:
-      # -- Hubble-ui backend image.
-      image:
-        repository: quay.io/cilium/hubble-ui-backend
-        tag: v0.8.5@sha256:2bce50cf6c32719d072706f7ceccad654bfa907b2745a496da99610776fe31ed
-        pullPolicy: IfNotPresent
-      # [Example]
-      # resources:
-      #   limits:
-      #     cpu: 1000m
-      #     memory: 1024M
-      #   requests:
-      #     cpu: 100m
-      #     memory: 64Mi
-      # -- Resource requests and limits for the 'backend' container of the 'hubble-ui' deployment.
-      resources: {}
-
-    frontend:
-      # -- Hubble-ui frontend image.
-      image:
-        repository: quay.io/cilium/hubble-ui
-        tag: v0.8.5@sha256:4eaca1ec1741043cfba6066a165b3bf251590cf4ac66371c4f63fbed2224ebb4
-        pullPolicy: IfNotPresent
-      # [Example]
-      # resources:
-      #   limits:
-      #     cpu: 1000m
-      #     memory: 1024M
-      #   requests:
-      #     cpu: 100m
-      #     memory: 64Mi
-      # -- Resource requests and limits for the 'frontend' container of the 'hubble-ui' deployment.
-      resources: {}
-
-    proxy:
-      # -- Hubble-ui ingress proxy image.
-      image:
-        repository: docker.io/envoyproxy/envoy
-        tag: v1.18.4@sha256:e5c2bb2870d0e59ce917a5100311813b4ede96ce4eb0c6bfa879e3fbe3e83935
-        pullPolicy: IfNotPresent
-      # [Example]
-      # resources:
-      #   limits:
-      #     cpu: 1000m
-      #     memory: 1024M
-      #   requests:
-      #     cpu: 100m
-      #     memory: 64Mi
-      # -- Resource requests and limits for the 'proxy' container of the 'hubble-ui' deployment.
-      resources: {}
-
-    # -- The number of replicas of Hubble UI to deploy.
-    replicas: 1
-
-    # -- Annotations to be added to hubble-ui pods
-    podAnnotations: {}
-
-    # -- Labels to be added to hubble-ui pods
-    podLabels: {}
-
-    # -- Node labels for pod assignment
-    # ref: https://kubernetes.io/docs/user-guide/node-selection/
-    nodeSelector: {}
-
-    # -- Node tolerations for pod assignment on nodes with taints
-    # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-    #
-    tolerations: []
-
-    # -- hubble-ui update strategy.
-    updateStrategy:
-      rollingUpdate:
-        maxUnavailable: 1
-      type: RollingUpdate
-
-    securityContext:
-      # -- Whether to set the security context on the Hubble UI pods.
-      enabled: true
-
-    # -- hubble-ui ingress configuration.
-    ingress:
-      enabled: false
-      annotations: {}
-        # kubernetes.io/ingress.class: nginx
-        # kubernetes.io/tls-acme: "true"
-      hosts:
-        - chart-example.local
-      tls: []
-      #  - secretName: chart-example-tls
-      #    hosts:
-      #      - chart-example.local
-
-
-# -- Method to use for identity allocation (`crd` or `kvstore`).
-identityAllocationMode: "crd"
-
-# TODO: Add documentation
-# identityChangeGracePeriod: "5s"
-
-# TODO: Add documentation
-# identityGCInterval:
-
-# TODO: Add documentation
-# identityHeartbeatTimeout: ""
-
-
-# -- Configure whether to install iptables rules to allow for TPROXY
-# (L7 proxy injection), iptables-based masquerading and compatibility
-# with kube-proxy.
-installIptablesRules: true
-
-# -- Install Iptables rules to skip netfilter connection tracking on all pod
-# traffic. This option is only effective when Cilium is running in direct
-# routing and full KPR mode. Moreover, this option cannot be enabled when Cilium
-# is running in a managed Kubernetes environment or in a chained CNI setup.
-installNoConntrackIptablesRules: false
-
-ipam:
-  # -- Configure IP Address Management mode.
-  # ref: https://docs.cilium.io/en/stable/concepts/networking/ipam/
-  mode: "cluster-pool"
-  operator:
-    # -- IPv4 CIDR range to delegate to individual nodes for IPAM.
-    clusterPoolIPv4PodCIDR: "10.0.0.0/8"
-    # -- IPv4 CIDR mask size to delegate to individual nodes for IPAM.
-    clusterPoolIPv4MaskSize: 24
-    # -- IPv6 CIDR range to delegate to individual nodes for IPAM.
-    clusterPoolIPv6PodCIDR: "fd00::/104"
-    # -- IPv6 CIDR mask size to delegate to individual nodes for IPAM.
-    clusterPoolIPv6MaskSize: 120
-
-# -- Configure the eBPF-based ip-masq-agent
-ipMasqAgent:
-  enabled: false
-
-# iptablesLockTimeout defines the iptables "--wait" option when invoked from Cilium.
-# iptablesLockTimeout: "5s"
-
-ipv4:
-  # -- Enable IPv4 support.
-  enabled: true
-
-ipv6:
-  # -- Enable IPv6 support.
-  enabled: false
-
-ipvlan:
-  # -- Enable the IPVLAN datapath
-  enabled: false
-
-  # -- masterDevice is the name of the device to use to attach secondary IPVLAN
-  # devices
-  # masterDevice: eth0
-
-# -- Configure Kubernetes specific configuration
-k8s: {}
-  # -- requireIPv4PodCIDR enables waiting for Kubernetes to provide the PodCIDR
-  # range via the Kubernetes node resource
-  # requireIPv4PodCIDR: false
-
-  # -- requireIPv6PodCIDR enables waiting for Kubernetes to provide the PodCIDR
-  # range via the Kubernetes node resource
-  # requireIPv6PodCIDR: false
-
-# -- Keep the deprecated selector labels when deploying Cilium DaemonSet.
-keepDeprecatedLabels: false
-
-# -- Keep the deprecated probes when deploying Cilium DaemonSet
-keepDeprecatedProbes: false
-
-startupProbe:
-  # -- failure threshold of startup probe.
-  # 105 x 2s translates to the old behaviour of the readiness probe (120s delay + 30 x 3s)
-  failureThreshold: 105
-  # -- interval between checks of the startup probe
-  periodSeconds: 2
-livenessProbe:
-  # -- failure threshold of liveness probe
-  failureThreshold: 10
-  # -- interval between checks of the liveness probe
-  periodSeconds: 30
-readinessProbe:
-  # -- failure threshold of readiness probe
-  failureThreshold: 3
-  # -- interval between checks of the readiness probe
-  periodSeconds: 30
-
-# -- Configure the kube-proxy replacement in Cilium BPF datapath
-# Valid options are "disabled", "probe", "partial", "strict".
-# ref: https://docs.cilium.io/en/stable/gettingstarted/kubeproxy-free/
-#kubeProxyReplacement: "disabled"
-
-# -- healthz server bind address for the kube-proxy replacement.
-# To enable set the value to '0.0.0.0:10256' for all ipv4
-# addresses and this '[::]:10256' for all ipv6 addresses.
-# By default it is disabled.
-kubeProxyReplacementHealthzBindAddr: ""
-
-l2NeighDiscovery:
-  # -- Enable L2 neighbour discovery in the agent
-  enabled: true
-  # -- Set period for arping
-  arping-refresh-period: "5m"
-
-# -- Enable Layer 7 network policy.
-l7Proxy: true
-
-# -- Enable Local Redirect Policy.
-localRedirectPolicy: false
-
-# To include or exclude matched resources from cilium identity evaluation
-# labels: ""
-
-# logOptions allows you to define logging options. eg:
-# logOptions:
-#   format: json
-
-# -- Enables periodic logging of system load
-logSystemLoad: false
-
-
-# -- Configure maglev consistent hashing
-maglev: {}
-  # -- tableSize is the size (parameter M) for the backend table of one
-  # service entry
-  # tableSize:
-
-  # -- hashSeed is the cluster-wide base64 encoded seed for the hashing
-  # hashSeed:
-
-# -- Enables masquerading of IPv4 traffic leaving the node from endpoints.
-enableIPv4Masquerade: true
-
-# -- Enables masquerading of IPv6 traffic leaving the node from endpoints.
-enableIPv6Masquerade: true
-
-# -- Enables egress gateway (beta) to redirect and SNAT the traffic that
-# leaves the cluster.
-egressGateway:
-  enabled: false
-
-# -- Specify the CIDR for native routing (ie to avoid IP masquerade for).
-# This value corresponds to the configured cluster-cidr.
-# nativeRoutingCIDR:
-
-monitor:
-  # -- Enable the cilium-monitor sidecar.
-  enabled: false
-
-# -- Configure service load balancing
-# loadBalancer:
-  # -- standalone enables the standalone L4LB which does not connect to
-  # kube-apiserver.
-  # standalone: false
-
-  # -- algorithm is the name of the load balancing algorithm for backend
-  # selection e.g. random or maglev
-  # algorithm: random
-
-  # -- mode is the operation mode of load balancing for remote backends
-  # e.g. snat, dsr, hybrid
-  # mode: snat
-
-  # -- acceleration is the option to accelerate service handling via XDP
-  # e.g. native, disabled
-  # acceleration: disabled
-
-  # -- dsrDispatch configures whether IP option or IPIP encapsulation is
-  # used to pass a service IP and port to remote backend
-  # dsrDispatch: opt
-
-# -- Configure N-S k8s service loadbalancing
-nodePort:
-  # -- Enable the Cilium NodePort service implementation.
-  enabled: false
-
-  # -- Port range to use for NodePort services.
-  # range: "30000,32767"
-
-  # -- Set to true to prevent applications binding to service ports.
-  bindProtection: true
-
-  # -- Append NodePort range to ip_local_reserved_ports if clash with ephemeral
-  # ports is detected.
-  autoProtectPortRange: true
-
-  # -- Enable healthcheck nodePort server for NodePort services
-  enableHealthCheck: true
-
-# policyAuditMode: false
-
-# -- The agent can be put into one of the three policy enforcement modes:
-# default, always and never.
-# ref: https://docs.cilium.io/en/stable/policy/intro/#policy-enforcement-modes
-policyEnforcementMode: "default"
-
-pprof:
-  # -- Enable Go pprof debugging
-  enabled: false
-
-# -- Configure prometheus metrics on the configured port at /metrics
-prometheus:
-  enabled: false
-  port: 9090
-  serviceMonitor:
-    # -- Enable service monitors.
-    # This requires the prometheus CRDs to be available (see https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml)
-    #
-    enabled: false
-    # -- Labels to add to ServiceMonitor cilium-agent
-    labels: {}
-    # -- Specify the Kubernetes namespace where Prometheus expects to find
-    # service monitors configured.
-    # namespace: ""
-  # -- Metrics that should be enabled or disabled from the default metric
-  # list. (+metric_foo to enable metric_foo , -metric_bar to disable
-  # metric_bar).
-  # ref: https://docs.cilium.io/en/stable/operations/metrics/#exported-metrics
-  metrics: ~
-
-# -- Configure Istio proxy options.
-proxy:
-  prometheus:
-    enabled: true
-    port: "9095"
-  # -- Regular expression matching compatible Istio sidecar istio-proxy
-  # container image names
-  sidecarImageRegex: "cilium/istio_proxy"
-
-# -- Enable use of the remote node identity.
-# ref: https://docs.cilium.io/en/v1.7/install/upgrade/#configmap-remote-node-identity
-remoteNodeIdentity: true
-
-# -- Enable resource quotas for priority classes used in the cluster.
-resourceQuotas:
-  enabled: false
-  cilium:
-    hard:
-      # 5k nodes * 2 DaemonSets (Cilium and cilium node init)
-      pods: "10k"
-  operator:
-    hard:
-      # 15 "clusterwide" Cilium Operator pods for HA
-      pods: "15"
-
-# Need to document default
-##################
-#sessionAffinity: false
-
-# -- Do not run Cilium agent when running with clean mode. Useful to completely
-# uninstall Cilium as it will stop Cilium from starting and create artifacts
-# in the node.
-sleepAfterInit: false
-
-# -- Configure BPF socket operations configuration
-sockops:
-  # enabled enables installation of socket options acceleration.
-  enabled: false
-
-# TODO: Add documentation, default value
-# svcSourceRangeCheck:
-
-# synchronizeK8sNodes: true
-
-# -- Configure TLS configuration in the agent.
-tls:
-  enabled: true
-  secretsBackend: local
-
-# -- Configure the encapsulation configuration for communication between nodes.
-# Possible values:
-#   - disabled
-#   - vxlan (default)
-#   - geneve
-tunnel: "vxlan"
-
-wellKnownIdentities:
-  # -- Enable the use of well-known identities.
-  enabled: false
-
-
-etcd:
-  # -- Enable etcd mode for the agent.
-  enabled: false
-
-  # -- cilium-etcd-operator image.
-  image:
-    repository: quay.io/cilium/cilium-etcd-operator
-    tag: v2.0.7
-    pullPolicy: IfNotPresent
-
-  # -- cilium-etcd-operator priorityClassName
-  priorityClassName: ""
-
-  # -- Additional cilium-etcd-operator container arguments.
-  extraArgs: []
-
-  # -- Additional InitContainers to initialize the pod.
-  extraInitContainers: []
-
-  # -- Additional cilium-etcd-operator hostPath mounts.
-  extraHostPathMounts: []
-    # - name: textfile-dir
-    #   mountPath: /srv/txt_collector
-    #   hostPath: /var/lib/cilium-etcd-operator
-    #   readOnly: true
-    #   mountPropagation: HostToContainer
-
-  # -- Additional cilium-etcd-operator ConfigMap mounts.
-  extraConfigmapMounts: []
-    # - name: certs-configmap
-    #   mountPath: /certs
-    #   configMap: certs-configmap
-    #   readOnly: true
-
-  # -- Node tolerations for cilium-etcd-operator scheduling to nodes with taints
-  # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-  tolerations:
-  - operator: Exists
-    # - key: "key"
-    #   operator: "Equal|Exists"
-    #   value: "value"
-    #   effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
-  # -- Node labels for cilium-etcd-operator pod assignment
-  # ref: https://kubernetes.io/docs/user-guide/node-selection/
-  nodeSelector: {}
-
-  # -- Annotations to be added to cilium-etcd-operator pods
-  podAnnotations: {}
-
-  # -- Labels to be added to cilium-etcd-operator pods
-  podLabels: {}
-
-  # -- PodDisruptionBudget settings
-  # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
-  #
-  podDisruptionBudget:
-    enabled: true
-    maxUnavailable: 2
-
-  # -- cilium-etcd-operator resource limits & requests
-  # ref: https://kubernetes.io/docs/user-guide/compute-resources/
-  #
-  resources: {}
-    # limits:
-    #   cpu: 4000m
-    #   memory: 4Gi
-    # requests:
-    #   cpu: 100m
-    #   memory: 512Mi
-
-  # -- Security context to be added to cilium-etcd-operator pods
-  #
-  securityContext: {}
-    # runAsUser: 0
-
-  # -- cilium-etcd-operator update strategy
-  updateStrategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-
-  # -- If etcd is behind a k8s service set this option to true so that Cilium
-  # does the service translation automatically without requiring a DNS to be
-  # running.
-  k8sService: false
-
-  # -- Cluster domain for cilium-etcd-operator.
-  clusterDomain: cluster.local
-
-  # -- List of etcd endpoints (not needed when using managed=true).
-  endpoints:
-    - https://CHANGE-ME:2379
-
-  # -- Enable use of TLS/SSL for connectivity to etcd. (auto-enabled if
-  # managed=true)
-  ssl: false
-
-operator:
-  # -- Enable the cilium-operator component (required).
-  enabled: true
-
-  # -- Roll out cilium-operator pods automatically when configmap is updated.
-  rollOutPods: false
-
-  # -- cilium-operator image.
-  image:
-    repository: quay.io/cilium/operator
-    tag: v1.10.7
-    # operator-generic-digest
-    genericDigest: "sha256:d0b491d8d8cb45862ed7f0410f65e7c141832f0f95262643fa5ff1edfcddcafe"
-    # operator-azure-digest
-    azureDigest: "sha256:556d692b2f08822101c159d9d6f731efe6c437d2b80f0ef96813e8745203c852"
-    # operator-aws-digest
-    awsDigest: "sha256:97b378e0e3b6b5ade6ae1706024c7a25fe6fc48e00102b65a6b7ac51d6327f40"
-    # operator-alibabacloud-digest
-    alibabacloudDigest: "sha256:7a6ccc99195ae6a8216d2a1e1e0cc05d49c2d263b194895da264899fe9d0f45a"
-    useDigest: true
-    pullPolicy: IfNotPresent
-    suffix: ""
-
-  # -- Number of replicas to run for the cilium-operator deployment
-  replicas: 2
-
-  # -- For using with an existing serviceAccount.
-  serviceAccountName: cilium-operator
- 
-  # -- cilium-operator priorityClassName
-  priorityClassName: ""
-
-  # -- cilium-operator update strategy
-  updateStrategy:
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 1
-    type: RollingUpdate
-
-  # -- cilium-operator affinity
-  affinity:
-    podAntiAffinity:
-      requiredDuringSchedulingIgnoredDuringExecution:
-      - labelSelector:
-          matchExpressions:
-          - key: io.cilium/app
-            operator: In
-            values:
-            - operator
-        topologyKey: kubernetes.io/hostname
-
-
-  # -- Additional cilium-operator container arguments.
-  extraArgs: []
-
-  # -- Additional cilium-operator environment variables.
-  extraEnv: {}
-
-  # -- Additional InitContainers to initialize the pod.
-  extraInitContainers: []
-
-  # -- Additional cilium-operator hostPath mounts.
-  extraHostPathMounts: []
-    # - name: host-mnt-data
-    #   mountPath: /host/mnt/data
-    #   hostPath: /mnt/data
-    #   hostPathType: Directory
-    #   readOnly: true
-    #   mountPropagation: HostToContainer
-
-  # -- Additional cilium-operator ConfigMap mounts.
-  extraConfigmapMounts: []
-    # - name: certs-configmap
-    #   mountPath: /certs
-    #   configMap: certs-configmap
-    #   readOnly: true
-
-  # -- Node tolerations for cilium-operator scheduling to nodes with taints
-  # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-  tolerations:
-  - operator: Exists
-    # - key: "key"
-    #   operator: "Equal|Exists"
-    #   value: "value"
-    #   effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
-  # -- Node labels for cilium-operator pod assignment
-  # ref: https://kubernetes.io/docs/user-guide/node-selection/
-  #
-  nodeSelector: {}
-
-  # -- Annotations to be added to cilium-operator pods
-  podAnnotations: {}
-
-  # -- Labels to be added to cilium-operator pods
-  podLabels: {}
-
-  # -- PodDisruptionBudget settings
-  # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
-  #
-  podDisruptionBudget:
-    enabled: false
-    maxUnavailable: 1
-
-  # -- cilium-operator resource limits & requests
-  # ref: https://kubernetes.io/docs/user-guide/compute-resources/
-  #
-  resources: {}
-    # limits:
-    #   cpu: 1000m
-    #   memory: 1Gi
-    # requests:
-    #   cpu: 100m
-    #   memory: 128Mi
-
-  # -- Security context to be added to cilium-operator pods
-  #
-  securityContext: {}
-    # runAsUser: 0
-
-  # -- Interval for endpoint garbage collection.
-  endpointGCInterval: "5m0s"
-
-  # -- Interval for identity garbage collection.
-  identityGCInterval: "15m0s"
-
-  # -- Timeout for identity heartbeats.
-  identityHeartbeatTimeout: "30m0s"
-
-  # -- Enable prometheus metrics for cilium-operator on the configured port at
-  # /metrics
-  prometheus:
-    enabled: false
-    port: 6942
-    serviceMonitor:
-      # -- Enable service monitors.
-      # This requires the prometheus CRDs to be available (see https://github.com/prometheus-operator/prometheus-operator/blob/master/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml)
-      ##
-      enabled: false
-      # -- Labels to add to ServiceMonitor cilium-operator
-      labels: {}
-
-  # -- Skip CRDs creation for cilium-operator
-  skipCRDCreation: false
-
-
-nodeinit:
-  # -- Enable the node initialization DaemonSet
-  enabled: false
-
-  # -- node-init image.
-  image:
-    repository: quay.io/cilium/startup-script
-    tag: 62bfbe88c17778aad7bef9fa57ff9e2d4a9ba0d8
-    pullPolicy: IfNotPresent
-
-  # -- The priority class to use for the nodeinit pod.
-  priorityClassName: ""
-
-  # -- node-init update strategy
-  updateStrategy:
-    type: RollingUpdate
-
-  # -- Additional nodeinit environment variables.
-  extraEnv: {}
-
-  # -- Additional nodeinit init containers.
-  extraInitContainers: []
-
-  # -- Additional nodeinit host path mounts.
-  extraHostPathMounts: []
-    # - name: textfile-dir
-    #   mountPath: /srv/txt_collector
-    #   hostPath: /var/lib/nodeinit
-    #   readOnly: true
-    #   mountPropagation: HostToContainer
-
-  # -- Additional nodeinit ConfigMap mounts.
-  extraConfigmapMounts: []
-    # - name: certs-configmap
-    #   mountPath: /certs
-    #   configMap: certs-configmap
-    #   readOnly: true
-
-  # -- Node tolerations for nodeinit scheduling to nodes with taints
-  # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-  #
-  tolerations:
-  - operator: Exists
-    # - key: "key"
-    #   operator: "Equal|Exists"
-    #   value: "value"
-    #   effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
-  # -- Node labels for nodeinit pod assignment
-  # ref: https://kubernetes.io/docs/user-guide/node-selection/
-  #
-  nodeSelector: {}
-
-  # -- Annotations to be added to node-init pods.
-  podAnnotations: {}
-
-  # -- Labels to be added to node-init pods.
-  podLabels: {}
-
-  # -- PodDisruptionBudget settings
-  # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
-  #
-  podDisruptionBudget:
-    enabled: true
-    maxUnavailable: 2
-
-  # -- nodeinit resource limits & requests
-  # ref: https://kubernetes.io/docs/user-guide/compute-resources/
-  #
-  resources:
-    requests:
-      cpu: 100m
-      memory: 100Mi
-
-  # -- Security context to be added to nodeinit pods.
-  #
-  securityContext: {}
-    # runAsUser: 0
-
-  # -- bootstrapFile is the location of the file where the bootstrap timestamp is
-  # written by the node-init DaemonSet
-  bootstrapFile: "/tmp/cilium-bootstrap-time"
-
-preflight:
-  # -- Enable Cilium pre-flight resources (required for upgrade)
-  enabled: false
-
-  # -- Cilium pre-flight image.
-  image:
-    repository: quay.io/cilium/cilium
-    tag: v1.10.7
-    # cilium-digest
-    digest: "sha256:e23f55e80e1988db083397987a89967aa204ad6fc32da243b9160fbcea29b0ca"
-    useDigest: true
-    pullPolicy: IfNotPresent
-
-  # -- The priority class to use for the preflight pod.
-  priorityClassName: ""
-
-  # -- preflight update strategy
-  updateStrategy:
-    type: RollingUpdate
-
-  # -- Additional preflight environment variables.
-  extraEnv: {}
-
-  # -- Additional preflight init containers.
-  extraInitContainers: []
-
-  # -- Additional preflight host path mounts.
-  extraHostPathMounts: []
-    # - name: textfile-dir
-    #   mountPath: /srv/txt_collector
-    #   hostPath: /var/lib/preflight
-    #   readOnly: true
-    #   mountPropagation: HostToContainer
-
-  # -- Additional preflight ConfigMap mounts.
-  extraConfigmapMounts: []
-    # - name: certs-configmap
-    #   mountPath: /certs
-    #   configMap: certs-configmap
-    #   readOnly: true
-
-  # -- Node tolerations for preflight scheduling to nodes with taints
-  # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-  #
-  tolerations:
-  - effect: NoSchedule
-    key: node.kubernetes.io/not-ready
-  - effect: NoSchedule
-    key: node-role.kubernetes.io/master
-  - effect: NoSchedule
-    key: node.cloudprovider.kubernetes.io/uninitialized
-    value: "true"
-  - key: CriticalAddonsOnly
-    operator: "Exists"
-    # - key: "key"
-    #   operator: "Equal|Exists"
-    #   value: "value"
-    #   effect: "NoSchedule|PreferNoSchedule|NoExecute(1.6 only)"
-
-  # -- Node labels for preflight pod assignment
-  # ref: https://kubernetes.io/docs/user-guide/node-selection/
-  #
-  nodeSelector: {}
-
-  # -- Annotations to be added to preflight pods
-  podAnnotations: {}
-
-  # -- Labels to be added to the preflight pod.
-  podLabels: {}
-
-  # -- PodDisruptionBudget settings
-  # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
-  #
-  podDisruptionBudget:
-    enabled: true
-    maxUnavailable: 2
-
-  # -- preflight resource limits & requests
-  # ref: https://kubernetes.io/docs/user-guide/compute-resources/
-  #
-  resources: {}
-    # limits:
-    #   cpu: 4000m
-    #   memory: 4Gi
-    # requests:
-    #   cpu: 100m
-    #   memory: 512Mi
-
-  # -- Security context to be added to preflight pods
-  #
-  securityContext: {}
-    # runAsUser: 0
-
-  # -- Path to write the `--tofqdns-pre-cache` file to.
-  tofqdnsPreCache: ""
-  # -- By default we should always validate the installed CNPs before upgrading
-  # Cilium. This will make sure the user will have the policies deployed in the
-  # cluster with the right schema.
-  validateCNPs: true
-
-# -- Explicitly enable or disable priority class.
-# .Capabilities.KubeVersion is unsettable in `helm template` calls,
-# it depends on k8s libraries version that Helm was compiled against.
-# This option allows to explicitly disable setting the priority class, which
-# is useful for rendering charts for gke clusters in advance.
-enableCriticalPriorityClass: true
-
-# disableEnvoyVersionCheck removes the check for Envoy, which can be useful
-# on AArch64 as the images do not currently ship a version of Envoy.
-#disableEnvoyVersionCheck: false
-
-clustermesh:
-  # -- Deploy clustermesh-apiserver for clustermesh
-  useAPIServer: false
-
-  apiserver:
-    # -- Clustermesh API server image.
-    image:
-      repository: quay.io/cilium/clustermesh-apiserver
-      tag: v1.10.7
-      # clustermesh-apiserver-digest
-      digest: "sha256:9afb0a15afffdf84812c8174df9de86e35239fb87a6ffd9539877a9e643d8132"
-      useDigest: true
-      pullPolicy: IfNotPresent
-
-    etcd:
-      # -- Clustermesh API server etcd image.
-      image:
-        repository: quay.io/coreos/etcd
-        tag: v3.4.13
-        pullPolicy: IfNotPresent
-
-    service:
-      # -- The type of service used for apiserver access.
-      type: NodePort
-      # -- Optional port to use as the node port for apiserver access.
-      nodePort: 32379
-      # -- Optional loadBalancer IP address to use with type LoadBalancer.
-      # loadBalancerIP:
-
-      # -- Annotations for the clustermesh-apiserver
-      # For GKE LoadBalancer, use annotation cloud.google.com/load-balancer-type: "Internal"
-      # For EKS LoadBalancer, use annotation service.beta.kubernetes.io/aws-load-balancer-internal: 0.0.0.0/0
-      annotations: {}
-
-    # -- Number of replicas run for the clustermesh-apiserver deployment.
-    replicas: 1
-
-    # -- Node labels for pod assignment
-    # ref: https://kubernetes.io/docs/user-guide/node-selection/
-    nodeSelector: {}
-
-    # -- Annotations to be added to clustermesh-apiserver pods
-    podAnnotations: {}
-
-    # -- Labels to be added to clustermesh-apiserver pods
-    podLabels: {}
-
-    # -- Resource requests and limits for the clustermesh-apiserver container of the clustermesh-apiserver deployment, such as
-    #     resources:
-    #       limits:
-    #         cpu: 1000m
-    #         memory: 1024M
-    #       requests:
-    #         cpu: 100m
-    #         memory: 64Mi
-    resources: {}
-
-    # -- Node tolerations for pod assignment on nodes with taints
-    # ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
-    tolerations: []
-
-    # -- clustermesh-apiserver update strategy
-    updateStrategy:
-      rollingUpdate:
-        maxUnavailable: 1
-      type: RollingUpdate
-
-    tls:
-      # -- Configure automatic TLS certificates generation.
-      # A Kubernetes CronJob is used the generate any
-      # certificates not provided by the user at installation
-      # time.
-      auto:
-        # -- When set to true, automatically generate a CA and certificates to
-        # enable mTLS between clustermesh-apiserver and external workload instances.
-        # If set to false, the certs to be provided by setting appropriate values below.
-        enabled: true
-        # Sets the method to auto-generate certificates. Supported values:
-        # - helm:      This method uses Helm to generate all certificates.
-        # - cronJob:   This method uses a Kubernetes CronJob the generate any
-        #              certificates not provided by the user at installation
-        #              time.
-        method: helm
-        # -- Generated certificates validity duration in days.
-        certValidityDuration: 1095
-        # -- Schedule for certificates regeneration (regardless of their expiration date).
-        # Only used if method is "cronJob". If nil, then no recurring job will be created.
-        # Instead, only the one-shot job is deployed to generate the certificates at
-        # installation time.
-        #
-        # Due to the out-of-band distribution of client certs to external workloads the
-        # CA is (re)regenerated only if it is not provided as a helm value and the k8s
-        # secret is manually deleted.
-        #
-        # Defaults to none. Commented syntax gives midnight of the first day of every
-        # fourth month. For syntax, see
-        # https://kubernetes.io/docs/tasks/job/automated-tasks-with-cron-jobs/#schedule
-        # schedule: "0 0 1 */4 *"
-      # -- base64 encoded PEM values for the ExternalWorkload CA certificate and private key.
-      ca:
-        # -- Optional CA cert. If it is provided, it will be used by the 'cronJob' method to
-        # generate all other certificates. Otherwise, an ephemeral CA is generated.
-        cert: ""
-        # -- Optional CA private key. If it is provided, it will be used by the 'cronJob' method to
-        # generate all other certificates. Otherwise, an ephemeral CA is generated.
-        key: ""
-      # -- base64 encoded PEM values for the clustermesh-apiserver server certificate and private key.
-      # Used if 'auto' is not enabled.
-      server:
-        cert: ""
-        key: ""
-      # -- base64 encoded PEM values for the clustermesh-apiserver admin certificate and private key.
-      # Used if 'auto' is not enabled.
-      admin:
-        cert: ""
-        key: ""
-      # -- base64 encoded PEM values for the clustermesh-apiserver client certificate and private key.
-      # Used if 'auto' is not enabled.
-      client:
-        cert: ""
-        key: ""
-      # -- base64 encoded PEM values for the clustermesh-apiserver remote cluster certificate and private key.
-      # Used if 'auto' is not enabled.
-      remote:
-        cert: ""
-        key: ""
-
-# -- Configure external workloads support
-externalWorkloads:
-  # -- Enable support for external workloads, such as VMs (false by default).
-  enabled: false
-
-# -- Configure cgroup related configuration
-cgroup:
-  autoMount:
-    # -- Enable auto mount of cgroup2 filesystem.
-    # When `autoMount` is enabled, cgroup2 filesystem is mounted at
-    # `cgroup.hostRoot` path on the underlying host and inside the cilium agent pod.
-    # If users disable `autoMount`, it's expected that users have mounted
-    # cgroup2 filesystem at the specified `cgroup.hostRoot` volume, and then the
-    # volume will be mounted inside the cilium agent pod at the same path.
-    enabled: true
-  # -- Configure cgroup root where cgroup2 filesystem is mounted on the host (see also: `cgroup.autoMount`)
-  hostRoot: /run/cilium/cgroupv2
diff --git a/hack/sync-charts.sh b/hack/sync-charts.sh
index 53ae45a..1043a63 100755
--- a/hack/sync-charts.sh
+++ b/hack/sync-charts.sh
@@ -26,10 +26,6 @@
 # Clean-up all of the existing charts
 rm -rfv ${ATMOSPHERE}/charts/*
 
-CILIUM_VERSION=1.10.7
-curl -sL https://helm.cilium.io/cilium-${CILIUM_VERSION}.tgz \
-  | tar -xz -C ${ATMOSPHERE}/charts
-
 CEPH_CSI_RBD_VERSION=3.5.1
 curl -sL https://ceph.github.io/csi-charts/rbd/ceph-csi-rbd-${CEPH_CSI_RBD_VERSION}.tgz \
   | tar -xz -C ${ATMOSPHERE}/charts
diff --git a/playbooks/cni.yml b/playbooks/cni.yml
index d2f5863..b44f3b9 100644
--- a/playbooks/cni.yml
+++ b/playbooks/cni.yml
@@ -16,6 +16,9 @@
   gather_facts: false
   become: true
   roles:
-    - role: cilium
+    - role: vexxhost.kubernetes.cilium
+      vars:
+        cilium_node_image: "{{ atmosphere_images['cilium_node'] }}"
+        cilium_operator_image: "{{ atmosphere_images['cilium_operator'] }}"
       tags:
         - cilium
diff --git a/roles/cilium/README.md b/roles/cilium/README.md
deleted file mode 100644
index f103d9e..0000000
--- a/roles/cilium/README.md
+++ /dev/null
@@ -1 +0,0 @@
-# `cilium`
diff --git a/roles/cilium/defaults/main.yml b/roles/cilium/defaults/main.yml
deleted file mode 100644
index 25db54e..0000000
--- a/roles/cilium/defaults/main.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-cilium_helm_release_name: cilium
-cilium_helm_chart_path: "{{ role_path }}/../../charts/cilium/"
-cilium_helm_chart_ref: /usr/local/src/cilium
-
-cilium_helm_release_namespace: kube-system
-cilium_helm_values: {}
diff --git a/roles/cilium/meta/main.yml b/roles/cilium/meta/main.yml
deleted file mode 100644
index 811ecc2..0000000
--- a/roles/cilium/meta/main.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-galaxy_info:
-  author: VEXXHOST, Inc.
-  description: Ansible role for Cilium
-  license: Apache-2.0
-  min_ansible_version: 5.5.0
-  standalone: false
-  platforms:
-    - name: Ubuntu
-      versions:
-        - focal
-
-dependencies:
-  - role: defaults
-  - role: upload_helm_chart
-    vars:
-      upload_helm_chart_src: "{{ cilium_helm_chart_path }}"
-      upload_helm_chart_dest: "{{ cilium_helm_chart_ref }}"
diff --git a/roles/cilium/tasks/main.yml b/roles/cilium/tasks/main.yml
deleted file mode 100644
index 7067760..0000000
--- a/roles/cilium/tasks/main.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Copyright (c) 2022 VEXXHOST, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-- name: Deploy Helm chart
-  run_once: true
-  kubernetes.core.helm:
-    name: "{{ cilium_helm_release_name }}"
-    chart_ref: "{{ cilium_helm_chart_ref }}"
-    release_namespace: "{{ cilium_helm_release_namespace }}"
-    kubeconfig: /etc/kubernetes/admin.conf
-    values: "{{ _cilium_helm_values | combine(cilium_helm_values, recursive=True) }}"
diff --git a/roles/cilium/vars/main.yml b/roles/cilium/vars/main.yml
deleted file mode 100644
index 27bfdac..0000000
--- a/roles/cilium/vars/main.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-_cilium_helm_values:
-  image:
-    repository: "{{ atmosphere_images['cilium_node'] | vexxhost.kubernetes.docker_image('name') }}"
-    tag: "{{ atmosphere_images['cilium_node'] | vexxhost.kubernetes.docker_image('tag') }}"
-    useDigest: false
-  tunnel: geneve
-  operator:
-    image:
-      repository: "{{ atmosphere_images['cilium_operator'] | vexxhost.kubernetes.docker_image('name') | replace('-generic', '') }}"
-      tag: "{{ atmosphere_images['cilium_operator'] | vexxhost.kubernetes.docker_image('tag') }}"
-      useDigest: false
-    nodeSelector:
-      openstack-control-plane: enabled
-  ipam:
-    operator:
-      clusterPoolIPv4PodCIDR: "{{ cilium_ipv4_cidr | default('10.0.0.0/8') }}"
