Skip to content

Please improve PV/PVC generator #68

@Moep90

Description

@Moep90

Usecase

For a Deployment + Job + CronJob resource it's sometimes required to have one or more additional PV/PVC's.
Therfore I need the generators to be able to generate them.

Issue

Currently PV/PVC generator only allows the function with volumeClaimTemplate by type: statefulset to create actual persistence.

Current "Workaround"

parameters:
  kapitan:
    compile:
      - output_path: manifests
        input_type: jinja2
        input_paths: 
          - templates/jinja/pvc.yml

The Component

parameters:
  extra:
    pvcs:
      - name: pg-backup
        spec:
          storageClassName: ${postgres:persistence:storageclass}
          accessModes: ${postgres:persistence:accessModes}
          resources:
            requests:
              storage: ${postgres:backup:size}

My Jinja2 Template:

{% set p = inventory.parameters %}
{% for pvc in p.extra.pvcs %}
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: {{ pvc.name }}
  namespace: {{ p.namespace }}
  labels: {{ p.generators.manifest.default_config.labels }}
  annotations: {{ p.generators.manifest.default_config.annotations }}
spec: {{ pvc.spec }}
{% endfor %}

The Result

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pg-backup
  namespace: gitea
  labels: {'app.kubernetes.io/part-of': 'gitea', 'app.kubernetes.io/managed-by': 'kapitan'}
  annotations: {'manifests.kapicorp.com/generated': 'true'}
spec: {'storageClassName': 'standard', 'accessModes': ['ReadWriteOnce'], 'resources': {'requests': {'storage': '10Gi'}}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgeneratorRelated to generator components

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions