filmov
tv
Lightning Talk: Using Kustomize KRM Functions to Enhance Argo CD Application Deployments- Jan Heylen
Показать описание
Lightning Talk: Using Kustomize KRM Functions to Enhance Argo CD Application Deployments - Jan Heylen, Nokia
Argo CD, out of the box supports several ways to define K8s manifests, Kustomize, Helm, plain manifests,... and custom tools. But how does that work 'custom tools'? What are the (small) pitfalls and experiences using Argo CD plugins? This end user story is about extending Argo CD with a plugin, a plugin that uses an alpha feature of Kustomize, called 'KRM functions', and its potential power. Kustomize KRM functions, or KRM functions on its own, exec or containers, could be the answer to the recurring problem of effective configuration management: embracing the inevitability of programmatic configuration that, given enough iterations, configuration data temps to evolve to 'Turing complete'. By embracing this, and so maintaining a clean separation between computation and data, representing the data as simple as possible (yaml/json), and doing the programmatic changes in a real programming language. The plugin presented takes one approach, but also teases the possible scenarios looking at the KRM function specification (e.g. direct KRM functions instead of Kustomize, KRM container functions chained via Argo Workflows, ... ).
Argo CD, out of the box supports several ways to define K8s manifests, Kustomize, Helm, plain manifests,... and custom tools. But how does that work 'custom tools'? What are the (small) pitfalls and experiences using Argo CD plugins? This end user story is about extending Argo CD with a plugin, a plugin that uses an alpha feature of Kustomize, called 'KRM functions', and its potential power. Kustomize KRM functions, or KRM functions on its own, exec or containers, could be the answer to the recurring problem of effective configuration management: embracing the inevitability of programmatic configuration that, given enough iterations, configuration data temps to evolve to 'Turing complete'. By embracing this, and so maintaining a clean separation between computation and data, representing the data as simple as possible (yaml/json), and doing the programmatic changes in a real programming language. The plugin presented takes one approach, but also teases the possible scenarios looking at the KRM function specification (e.g. direct KRM functions instead of Kustomize, KRM container functions chained via Argo Workflows, ... ).