TreasureMap

Rationale

  • Investigate the feasibility of converting airship-treasuremap site descriptions into kustomize site descriptions (Kubernetes CRD based).
  • The kustomize layering are beeing leverage (global, type, site).
This is not a "replacement" for airship treasuremap. This POC merely aims at highlighting what would have to be done to adapt treasuremap to tools such as kustomize, argo...

Lessons Learned

Data Layering, Substitions and Validation

  • It is possible to support the current airship layering (global, type, site). The three subfolders have be created. Each kustomization.yaml is using an entry “base”. Check airsloop

  • kustomize supports variables by default

    • Regex is using $(xxx) format.
    • Improvments have been proposed to address what kustomize could not do by default: PR
  • simple variable:

    • Definition in the kustomization.yaml: global
    • Tree and structure can be inlined: inline
    • Variable value extracted from a catalog CRD: value
  • simple inlining:

    • Definition in the kustomization.yaml: global
    • Tree and structure can be inlined: inline
    • Variable value extracted from a catalog CRD: value
  • parent inlining (for multipass replacement) are currently used the following way:

    • Definition in the kustomization.yaml: global
    • Tree and structure can be inlined: inline
    • Variable value extracted from a catalog CRD: value
  • Some of the OpenAPI V3 construct are not supported yet by CRDs.

Operator experience

  • kubectl get act --all--namespaces provides the user with a view at a glance of his deployment.
  • TBD

Documentation

Associated GIT Repos

Test airsloop site rendering

Build

Check that your configuration is correct. Invokes kustomize build and compare the output with a previously generated output. Be sure to have build the allinone version of kustomize.

make rendering-test-airsloop

Deploy the CRDs without operators

make deploy-airsloop
kubectl get all act --all-namespaces

Branches

  • master site manifests which require the inline function but autovar feature is not used.
  • autovar autovar feature of kustomize is enabled, hence no need for 3000 lines of vars and varreferences:

Important Issues and Release Notes

kubernetes

The definition of the CRD will soon be using v1 instead of v1beta1. The schema will be mandatory and the handling of the unknown field will change.