Crafting pipeline configurations with YAML can be intricate and challenging because YAML isn’t a programming language, Developers may find themselves reinventing the wheel each time they try to create new configurations because they don’t have visibility into existing configurations and work that others may have already done, resulting in inefficiency.
GitLab 16.7 introduces the CI/CD Catalog (Beta), with the goal of enhancing developer efficiency
They already have components in place - https://docs.gitlab.com/ee/ci/components/#directory-structure. These can also be tagged and versioned.
I already use these to build multi-arch containers using buildah