Hi,
I'm seeking clarification on the way to pass a PackageInstall customized values.
I have a package that has a 2-step template.
- Templates a helm chart
- Uses ytt for patching and adding additional templates
I am trying to figure out how I can have one set of values held in a Secret where I can provide configuration options to both helm and ytt.
I believe the issue I am hitting is described in this below note from the docs, but wanting to clarify my understanding and determine if there are any known workarounds or suggestions how I might proceed?
Note: Values will only be included in the first templating step of the package, though we intend to improve this experience in later releases.
Example
The goal with this example is to get the namespace value passed to both the helm chart during templating and also the ytt templating as if you were either using the --data-values-file flag to ytt or using the valuesFrom part of the App spec.
When testing, I found that the helm template correctly uses the updated value but ytt does not continuing to use the default.
carvel/packages/test.mydomain/
├── artifacts
│ └── packages
│ └── test.mydomain
│ ├── metadata.yml
│ └── package.yml
├── build-values.yml
├── config
│ └── ytt
│ ├── defaults.yaml
│ ├── overlays
│ └── example-overlay.yaml
│ ├── schema.yaml
│ └── templates
│ └── ConfigMap.yaml
├── examples
│ ├── PackageInstall.yaml
│ ├── PackageRepository.yaml
│ └── Secret.yaml
├── package-build.yml
├── package-resources.yml
├── tests
├── upstream
│ └── helm
│ └── test
│ ├── Chart.yaml
│ ├── charts
│ ├── templates
│ │ ├── ConfigMap.yaml
│ │ └── Namespace.yaml
│ └── values.yaml
└── vendir.yml
- A snippet from an example App spec
template:
- helmTemplate:
name: test
path: upstream/helm/test
- ytt:
paths:
- '-'
- config/ytt
- Example helm chart default values.yaml
- An example of the defaults file I'm using for the ytt side in
config/ytt/defaults.yaml
#@data/values
---
namespace: test
- Example Secret where I would like to put value overrides
---
apiVersion: v1
kind: Secret
metadata:
name: test-values
namespace: carvel
stringData:
values.yaml: |
---
namespace: test-override
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageInstall
metadata:
annotations:
kctrl.carvel.dev/local-fetch-0: .
creationTimestamp: null
name: test
namespace: carvel
spec:
packageRef:
refName: test.mydomain
versionSelection:
constraints: 0.0.1
serviceAccountName: kapp-controller-sa
syncPeriod: 5m0s
values:
- secretRef:
name: test-values
Related
Hi,
I'm seeking clarification on the way to pass a
PackageInstallcustomized values.I have a package that has a 2-step template.
I am trying to figure out how I can have one set of values held in a Secret where I can provide configuration options to both helm and ytt.
I believe the issue I am hitting is described in this below note from the docs, but wanting to clarify my understanding and determine if there are any known workarounds or suggestions how I might proceed?
Example
The goal with this example is to get the
namespacevalue passed to both the helm chart during templating and also the ytt templating as if you were either using the--data-values-fileflag to ytt or using thevaluesFrompart of the App spec.When testing, I found that the helm template correctly uses the updated value but ytt does not continuing to use the default.
carvel/packages/test.mydomain/ ├── artifacts │ └── packages │ └── test.mydomain │ ├── metadata.yml │ └── package.yml ├── build-values.yml ├── config │ └── ytt │ ├── defaults.yaml │ ├── overlays │ └── example-overlay.yaml │ ├── schema.yaml │ └── templates │ └── ConfigMap.yaml ├── examples │ ├── PackageInstall.yaml │ ├── PackageRepository.yaml │ └── Secret.yaml ├── package-build.yml ├── package-resources.yml ├── tests ├── upstream │ └── helm │ └── test │ ├── Chart.yaml │ ├── charts │ ├── templates │ │ ├── ConfigMap.yaml │ │ └── Namespace.yaml │ └── values.yaml └── vendir.ymlconfig/ytt/defaults.yamlPackageInstallRelated