Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package talhelper for openSUSE:Factory 
checked in at 2025-02-14 19:21:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/talhelper (Old)
 and      /work/SRC/openSUSE:Factory/.talhelper.new.8181 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "talhelper"

Fri Feb 14 19:21:16 2025 rev:14 rq:1245804 version:3.0.19

Changes:
--------
--- /work/SRC/openSUSE:Factory/talhelper/talhelper.changes      2025-02-07 
23:12:12.775339282 +0100
+++ /work/SRC/openSUSE:Factory/.talhelper.new.8181/talhelper.changes    
2025-02-14 19:21:18.503716039 +0100
@@ -1,0 +2,35 @@
+Fri Feb 14 06:40:58 UTC 2025 - opensuse_buildserv...@ojkastl.de
+
+- Update to version 3.0.19:
+  * docs: update CLI reference documentation (#856)
+  * chore(deps): update dependency siderolabs/talos to v1.9.4
+  * chore(container): update golangci/golangci-lint docker tag to
+    v1.64.5
+  * chore(schema): update talos-extensions.yaml JSON schema
+  * chore(container): update ghcr.io/siderolabs/talosctl docker tag
+    to v1.9.4
+  * chore(container): update registry.k8s.io/kubectl docker tag to
+    v1.32.2
+  * chore(container): update golangci/golangci-lint docker tag to
+    v1.64.4
+  * chore(devcontainer): Swap kubectl install image to use
+    registry.k8s.io instead of bitnami (#848)
+  * chore(schema): update talos-extensions.yaml JSON schema (#850)
+  * chore(container): update golangci/golangci-lint docker tag to
+    v1.64.2
+  * chore(schema): update talos-extensions.yaml JSON schema (#847)
+  * chore(container): update goreleaser/goreleaser docker tag to
+    v2.7.0
+  * chore(schema): update talos-extensions.yaml JSON schema (#844)
+  * chore(github-action): update renovatebot/github-action action
+    to v41.0.13
+  * chore(schema): update talconfig.yaml JSON schema (#842)
+  * feat(code): add test for content substitution
+  * feat(config): add `inlineManifests`
+  * feat(config): allow `machineFiles` to be not envsubst-ed
+  * fix(deps): update module github.com/budimanjojo/talhelper/v3 to
+    v3.0.18
+  * feat: update Scoop for talhelper version v3.0.18
+  * feat: update flake (#839)
+
+-------------------------------------------------------------------

Old:
----
  talhelper-3.0.18.obscpio

New:
----
  talhelper-3.0.19.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ talhelper.spec ++++++
--- /var/tmp/diff_new_pack.WCtikW/_old  2025-02-14 19:21:20.831812416 +0100
+++ /var/tmp/diff_new_pack.WCtikW/_new  2025-02-14 19:21:20.843812913 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           talhelper
-Version:        3.0.18
+Version:        3.0.19
 Release:        0
 Summary:        Tool to help creating Talos kubernetes cluster
 License:        BSD-3-Clause

++++++ _service ++++++
--- /var/tmp/diff_new_pack.WCtikW/_old  2025-02-14 19:21:21.063822021 +0100
+++ /var/tmp/diff_new_pack.WCtikW/_new  2025-02-14 19:21:21.087823014 +0100
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/budimanjojo/talhelper</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">v3.0.18</param>
+    <param name="revision">v3.0.19</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.WCtikW/_old  2025-02-14 19:21:21.247829638 +0100
+++ /var/tmp/diff_new_pack.WCtikW/_new  2025-02-14 19:21:21.279830963 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/budimanjojo/talhelper</param>
-              <param 
name="changesrevision">9485b27b38a26949dc95f111f9fa028ca3b3e002</param></service></servicedata>
+              <param 
name="changesrevision">7ec1c27cf88400d73cbcabab5c22e50e72413daf</param></service></servicedata>
 (No newline at EOF)
 

++++++ talhelper-3.0.18.obscpio -> talhelper-3.0.19.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/.devcontainer/Dockerfile 
new/talhelper-3.0.19/.devcontainer/Dockerfile
--- old/talhelper-3.0.18/.devcontainer/Dockerfile       2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/.devcontainer/Dockerfile       2025-02-14 
04:38:18.000000000 +0100
@@ -1,16 +1,16 @@
 ## 
================================================================================================
 # Utility versions
 ## 
================================================================================================
-ARG KUBECTL_VERSION=1.32.1
-ARG TALOSCTL_VERSION=v1.9.3
-ARG GOLINT_VERSION=v1.63.4-alpine
-ARG GORELEASER_VERSION=v2.6.1
+ARG KUBECTL_VERSION=v1.32.2
+ARG TALOSCTL_VERSION=v1.9.4
+ARG GOLINT_VERSION=v1.64.5-alpine
+ARG GORELEASER_VERSION=v2.7.0
 ARG SOPS_VERSION=v3.9.4-alpine
 ARG AGE_VERSION=v1.2.0
 ARG AGE_KEYGEN_VERSION=V1.2.0
 
 
-FROM bitnami/kubectl:${KUBECTL_VERSION} AS kubectl
+FROM registry.k8s.io/kubectl:${KUBECTL_VERSION} AS kubectl
 FROM ghcr.io/siderolabs/talosctl:${TALOSCTL_VERSION} AS talosctl
 FROM golangci/golangci-lint:${GOLINT_VERSION} AS golangci-lint
 FROM goreleaser/goreleaser:${GORELEASER_VERSION} AS goreleaser
@@ -24,7 +24,7 @@
 ## 
================================================================================================
 FROM 
mcr.microsoft.com/devcontainers/go:1.23-bookworm@sha256:a417a341a2a8648db7bf8527b86364848362a2c8dc150993c8a4cc2b53b4ec47
 AS workspace
 
-COPY --from=kubectl /opt/bitnami/kubectl/bin/kubectl /usr/local/bin/kubectl
+COPY --from=kubectl /bin/kubectl /usr/local/bin/kubectl
 COPY --from=talosctl /talosctl /usr/local/bin/talosctl
 COPY --from=golangci-lint /usr/bin/golangci-lint /usr/local/bin/golangci-lint
 COPY --from=goreleaser /usr/bin/goreleaser /usr/local/bin/goreleaser
@@ -38,4 +38,4 @@
 RUN goreleaser completion bash | sudo tee 
/etc/bash_completion.d/goreleaser.bash > /dev/null
 
 USER vscode
-ENTRYPOINT [ "/bin/bash", "-l", "-c" ]
\ No newline at end of file
+ENTRYPOINT [ "/bin/bash", "-l", "-c" ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/.github/workflows/renovate.yaml 
new/talhelper-3.0.19/.github/workflows/renovate.yaml
--- old/talhelper-3.0.18/.github/workflows/renovate.yaml        2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/.github/workflows/renovate.yaml        2025-02-14 
04:38:18.000000000 +0100
@@ -38,7 +38,7 @@
           echo "RENOVATE_DRY_RUN=${{ github.event.inputs.dryRun || 
env.RENOVATE_DRY_RUN }}" >> "${GITHUB_ENV}"
           echo "LOG_LEVEL=${{ github.event.inputs.logLevel || env.LOG_LEVEL 
}}" >> "${GITHUB_ENV}"
       - name: Renovate
-        uses: renovatebot/github-action@v41.0.12
+        uses: renovatebot/github-action@v41.0.13
         with:
           configurationFile: "${{ env.RENOVATE_CONFIG_FILE }}"
           token: "${{ steps.generate-token.outputs.token }}"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/default.nix 
new/talhelper-3.0.19/default.nix
--- old/talhelper-3.0.18/default.nix    2025-02-06 05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/default.nix    2025-02-14 04:38:18.000000000 +0100
@@ -8,16 +8,16 @@
 
 buildGo123Module rec {
   pname = "talhelper";
-  version = "3.0.17";
+  version = "3.0.18";
 
   src = fetchFromGitHub {
     owner = "budimanjojo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oQ3vfNXvrRre3cSDcd3OzTZeMOCCZcU6PHQuK3FevEM=";
+    sha256 = "sha256-h5g3ybS7nR3TdtMkE/UpCR5XmZdhL6gHum8EQ3rqpNc=";
   };
 
-  vendorHash = "sha256-YvYmhrNkA5smskO2LR/iZpa8wi8s3WtfgBqsr13ExVM=";
+  vendorHash = "sha256-b4R4BAwczsPUEI5BqwmecFchOEt/sy/E+9bQcqGC2fY=";
 
   ldflags = [ "-s -w -X 
github.com/budimanjojo/talhelper/v3/cmd.version=v${version}" ];
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/docs/docs/reference/cli.md 
new/talhelper-3.0.19/docs/docs/reference/cli.md
--- old/talhelper-3.0.18/docs/docs/reference/cli.md     2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/docs/docs/reference/cli.md     2025-02-14 
04:38:18.000000000 +0100
@@ -525,7 +525,7 @@
       --offline-mode          Generate schematic ID without doing POST request 
to image-factory
   -r, --registry-url string   Registry url of the image (default 
"factory.talos.dev")
       --secure-boot           Whether to generate Secure Boot enabled URL
-  -v, --version string        Talos version to generate (defaults to latest 
Talos version) (default "v1.9.3")
+  -v, --version string        Talos version to generate (defaults to latest 
Talos version) (default "v1.9.4")
 ```
 
 ### SEE ALSO
@@ -558,7 +558,7 @@
       --offline-mode          Generate schematic ID without doing POST request 
to image-factory
   -r, --registry-url string   Registry url of the image (default 
"factory.talos.dev")
       --secure-boot           Whether to generate Secure Boot enabled URL
-  -v, --version string        Talos version to generate (defaults to latest 
Talos version) (default "v1.9.3")
+  -v, --version string        Talos version to generate (defaults to latest 
Talos version) (default "v1.9.4")
 ```
 
 ### SEE ALSO
@@ -581,7 +581,7 @@
       --offline-mode          Generate schematic ID without doing POST request 
to image-factory
   -r, --registry-url string   Registry url of the image (default 
"factory.talos.dev")
       --secure-boot           Whether to generate Secure Boot enabled URL
-  -v, --version string        Talos version to generate (defaults to latest 
Talos version) (default "v1.9.3")
+  -v, --version string        Talos version to generate (defaults to latest 
Talos version) (default "v1.9.4")
 ```
 
 ### Options inherited from parent commands
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talhelper-3.0.18/docs/docs/reference/configuration.md 
new/talhelper-3.0.19/docs/docs/reference/configuration.md
--- old/talhelper-3.0.18/docs/docs/reference/configuration.md   2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/docs/docs/reference/configuration.md   2025-02-14 
04:38:18.000000000 +0100
@@ -202,6 +202,24 @@
 </tr>
 
 <tr markdown="1">
+<td markdown="1">`inlineManifests`</td>
+<td markdown="1">[][InlineManifest](#inlinemanifest)</td>
+<td markdown="1">A list of inline Kubernetes manifests for the 
cluster.</details><details><summary>*Show example*</summary>
+```yaml
+inlineManifests:
+  - name: namespace-ci
+    contents: |-
+      apiVersion: v1
+      kind: Namespace
+      metadata:
+        name: ci
+```
+</details></td>
+<td markdown="1" align="center">`[]`</td>
+<td markdown="1" align="center">:negative_squared_cross_mark:</td>
+</tr>
+
+<tr markdown="1">
 <td markdown="1">`controlPlane`</td>
 <td markdown="1">[NodeConfigs](#nodeconfigs)</td>
 <td markdown="1">Configurations targetted for all controlplane 
nodes.</details><details><summary>*Show example*</summary>
@@ -1051,6 +1069,12 @@
 
 `InstallDiskSelector` is type of upstream Talos <a 
href="https://www.talos.dev/latest/reference/configuration/#installdiskselector";
 target="_blank">`v1alpha1.InstallDiskSelector`</a>.
 
+## InlineManifest
+
+`InlineManifest` is type of upstream Talos <a 
href="https://www.talos.dev/latest/reference/configuration/v1alpha1/config/#Config.cluster.inlineManifests.";
 target="_blank">`v1alpha1.ClusterInlineManifest`</a>
+
+In addition to this, there's also a `skipEnvsubst` key that can be set to 
`true` to skip doing envsubst (only for file outside of `talconfig.yaml`)
+
 ## MachineDisk
 
 `MachineDisk` is type of upstream Talos <a 
href="https://www.talos.dev/latest/reference/configuration/#machinedisk"; 
target="_blank">`v1alpha1.MachineDisk`</a>
@@ -1059,6 +1083,8 @@
 
 `MachineFile` is type of upstream Talos <a 
href="https://www.talos.dev/latest/reference/configuration/#machinefile"; 
target="_blank">`v1alpha1.MachineFile`</a>
 
+In addition to this, there's also a `skipEnvsubst` key that can be set to 
`true` to skip doing envsubst (only for file outside of `talconfig.yaml`)
+
 ## InstallExtensionConfig
 
 `InstallExtensionConfig` is type of upstream Talos <a 
href="https://www.talos.dev/latest/reference/configuration/#installextensionconfig";
 target="_blank">`v1alpha1.InstallExtensionConfig`</a>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/hack/tsehelper/go.mod 
new/talhelper-3.0.19/hack/tsehelper/go.mod
--- old/talhelper-3.0.18/hack/tsehelper/go.mod  2025-02-06 05:08:44.000000000 
+0100
+++ new/talhelper-3.0.19/hack/tsehelper/go.mod  2025-02-14 04:38:18.000000000 
+0100
@@ -3,7 +3,7 @@
 go 1.23.4
 
 require (
-       github.com/budimanjojo/talhelper/v3 v3.0.17
+       github.com/budimanjojo/talhelper/v3 v3.0.18
        github.com/google/go-containerregistry v0.20.3
        github.com/sirupsen/logrus v1.9.3
        gopkg.in/yaml.v3 v3.0.1
@@ -23,7 +23,7 @@
        github.com/pkg/errors v0.9.1 // indirect
        github.com/stretchr/testify v1.9.0 // indirect
        github.com/vbatts/tar-split v0.11.6 // indirect
-       golang.org/x/mod v0.22.0 // indirect
+       golang.org/x/mod v0.23.0 // indirect
        golang.org/x/sync v0.10.0 // indirect
        golang.org/x/sys v0.29.0 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/hack/tsehelper/go.sum 
new/talhelper-3.0.19/hack/tsehelper/go.sum
--- old/talhelper-3.0.18/hack/tsehelper/go.sum  2025-02-06 05:08:44.000000000 
+0100
+++ new/talhelper-3.0.19/hack/tsehelper/go.sum  2025-02-14 04:38:18.000000000 
+0100
@@ -30,6 +30,8 @@
 github.com/budimanjojo/talhelper/v3 v3.0.16/go.mod 
h1:8Ai0qADRwTsZC2+Pqmv4C7baA6gKPA5ctSf45ASmAqo=
 github.com/budimanjojo/talhelper/v3 v3.0.17 
h1:bA3A0WD9Yk1sL+KI+qgZkh9wc4o3vJsJSiIwkMs99lI=
 github.com/budimanjojo/talhelper/v3 v3.0.17/go.mod 
h1:Bu+yhV01RSIteHvyHg4wpGGKb05lZK9xrPKqUce1ucE=
+github.com/budimanjojo/talhelper/v3 v3.0.18 
h1:xk0RZrAORY2mmhATHz4x+4gtq8dKCSRyd7rnZLMs6dU=
+github.com/budimanjojo/talhelper/v3 v3.0.18/go.mod 
h1:8VSunY2o4mQ3Ts+Y7BIL49SPUx5dy30ZIVYDpnPQOL0=
 github.com/containerd/stargz-snapshotter/estargz v0.15.1 
h1:eXJjw9RbkLFgioVaTG+G/ZW/0kEe2oEKCdS/ZxIyoCU=
 github.com/containerd/stargz-snapshotter/estargz v0.15.1/go.mod 
h1:gr2RNwukQ/S9Nv33Lt6UC7xEx58C+LHRdoqbEKjz1Kk=
 github.com/containerd/stargz-snapshotter/estargz v0.16.3 
h1:7evrXtoh1mSbGj/pfRccTampEyKpjpOnS3CyiV1Ebr8=
@@ -109,6 +111,8 @@
 golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
 golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
 golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.23.0 h1:Zb7khfcRGKk+kqfxFaP5tZqCnDZMjC5VtUBs87Hr6QM=
+golang.org/x/mod v0.23.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
 golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
 golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/config/config.go 
new/talhelper-3.0.19/pkg/config/config.go
--- old/talhelper-3.0.18/pkg/config/config.go   2025-02-06 05:08:44.000000000 
+0100
+++ new/talhelper-3.0.19/pkg/config/config.go   2025-02-14 04:38:18.000000000 
+0100
@@ -10,23 +10,24 @@
 )
 
 type TalhelperConfig struct {
-       ClusterName                    string              `yaml:"clusterName" 
jsonschema:"required,description=Name of the cluster"`
-       TalosVersion                   string              
`yaml:"talosVersion,omitempty" jsonschema:"example=v1.5.4,description=Talos 
version to perform installation"`
-       KubernetesVersion              string              
`yaml:"kubernetesVersion,omitempty" 
jsonschema:"example=v1.27.0,description=Kubernetes version to use"`
-       Endpoint                       string              `yaml:"endpoint" 
jsonschema:"required,example=https://192.168.200.10:6443,description=Cluster's 
controlplane endpoint"`
-       Domain                         string              
`yaml:"domain,omitempty" jsonschema:"example=cluster.local,description=The 
domain to be used by Kubernetes DNS"`
-       AllowSchedulingOnMasters       bool                
`yaml:"allowSchedulingOnMasters,omitempty" jsonschema:"description=Whether to 
allow running workload on controlplane nodes"`
-       AllowSchedulingOnControlPlanes bool                
`yaml:"allowSchedulingOnControlPlanes,omitempty" 
jsonschema:"description=Whether to allow running workload on controlplane 
nodes. It is an alias to \"AllowSchedulingOnMasters\""`
-       AdditionalMachineCertSans      []string            
`yaml:"additionalMachineCertSans,omitempty" jsonschema:"description=Extra 
certificate SANs for the machine's certificate"`
-       AdditionalApiServerCertSans    []string            
`yaml:"additionalApiServerCertSans,omitempty" jsonschema:"description=Extra 
certificate SANs for the API server's certificate"`
-       ClusterPodNets                 []string            
`yaml:"clusterPodNets,omitempty" jsonschema:"description=The pod subnet CIDR 
list"`
-       ClusterSvcNets                 []string            
`yaml:"clusterSvcNets,omitempty" jsonschema:"description=The service subnet 
CIDR list"`
-       CNIConfig                      *v1alpha1.CNIConfig 
`yaml:"cniConfig,omitempty" jsonschema:"description=The CNI to be used for the 
cluster's network"`
-       Patches                        []string            
`yaml:"patches,omitempty" jsonschema:"description=Patches to be applied to all 
nodes"`
-       Nodes                          []Node              `yaml:"nodes" 
jsonschema:"required,description=List of configurations for Node"`
-       ImageFactory                   ImageFactory        
`yaml:"imageFactory,omitempty" jsonschema:"Configuration for image factory"`
-       ControlPlane                   NodeConfigs         
`yaml:"controlPlane,omitempty" jsonschema:"description=Configurations targetted 
for all controlplane nodes"`
-       Worker                         NodeConfigs         
`yaml:"worker,omitempty" jsonschema:"description=Configurations targetted for 
all worker nodes"`
+       ClusterName                    string                 
`yaml:"clusterName" jsonschema:"required,description=Name of the cluster"`
+       TalosVersion                   string                 
`yaml:"talosVersion,omitempty" jsonschema:"example=v1.5.4,description=Talos 
version to perform installation"`
+       KubernetesVersion              string                 
`yaml:"kubernetesVersion,omitempty" 
jsonschema:"example=v1.27.0,description=Kubernetes version to use"`
+       Endpoint                       string                 `yaml:"endpoint" 
jsonschema:"required,example=https://192.168.200.10:6443,description=Cluster's 
controlplane endpoint"`
+       Domain                         string                 
`yaml:"domain,omitempty" jsonschema:"example=cluster.local,description=The 
domain to be used by Kubernetes DNS"`
+       AllowSchedulingOnMasters       bool                   
`yaml:"allowSchedulingOnMasters,omitempty" jsonschema:"description=Whether to 
allow running workload on controlplane nodes"`
+       AllowSchedulingOnControlPlanes bool                   
`yaml:"allowSchedulingOnControlPlanes,omitempty" 
jsonschema:"description=Whether to allow running workload on controlplane 
nodes. It is an alias to \"AllowSchedulingOnMasters\""`
+       AdditionalMachineCertSans      []string               
`yaml:"additionalMachineCertSans,omitempty" jsonschema:"description=Extra 
certificate SANs for the machine's certificate"`
+       AdditionalApiServerCertSans    []string               
`yaml:"additionalApiServerCertSans,omitempty" jsonschema:"description=Extra 
certificate SANs for the API server's certificate"`
+       ClusterInlineManifests         ClusterInlineManifests 
`yaml:"inlineManifests,omitempty" jsonschema:"description=A list of inline 
Kubernetes manifests for the cluster"`
+       ClusterPodNets                 []string               
`yaml:"clusterPodNets,omitempty" jsonschema:"description=The pod subnet CIDR 
list"`
+       ClusterSvcNets                 []string               
`yaml:"clusterSvcNets,omitempty" jsonschema:"description=The service subnet 
CIDR list"`
+       CNIConfig                      *v1alpha1.CNIConfig    
`yaml:"cniConfig,omitempty" jsonschema:"description=The CNI to be used for the 
cluster's network"`
+       Patches                        []string               
`yaml:"patches,omitempty" jsonschema:"description=Patches to be applied to all 
nodes"`
+       Nodes                          []Node                 `yaml:"nodes" 
jsonschema:"required,description=List of configurations for Node"`
+       ImageFactory                   ImageFactory           
`yaml:"imageFactory,omitempty" jsonschema:"Configuration for image factory"`
+       ControlPlane                   NodeConfigs            
`yaml:"controlPlane,omitempty" jsonschema:"description=Configurations targetted 
for all controlplane nodes"`
+       Worker                         NodeConfigs            
`yaml:"worker,omitempty" jsonschema:"description=Configurations targetted for 
all worker nodes"`
 }
 
 type Node struct {
@@ -46,7 +47,7 @@
        NodeAnnotations     map[string]string              
`yaml:"nodeAnnotations" jsonschema:"description=Annotations to be added to the 
node, supports templating"`
        NodeTaints          map[string]string              `yaml:"nodeTaints" 
jsonschema:"description=Node taints for the node. Effect is optional"`
        MachineDisks        []*v1alpha1.MachineDisk        
`yaml:"machineDisks,omitempty" jsonschema:"description=List of additional disks 
to partition, format, mount"`
-       MachineFiles        []*v1alpha1.MachineFile        
`yaml:"machineFiles,omitempty" jsonschema:"description=List of files to create 
inside the node"`
+       MachineFiles        MachineFiles                   
`yaml:"machineFiles,omitempty" jsonschema:"description=List of files to create 
inside the node"`
        DisableSearchDomain bool                           
`yaml:"disableSearchDomain,omitempty" jsonschema:"description=Whether to 
disable generating default search domain"`
        KernelModules       []*v1alpha1.KernelModuleConfig 
`yaml:"kernelModules,omitempty" jsonschema:"description=List of additional 
kernel modules to load inside the node"`
        Nameservers         []string                       
`yaml:"nameservers,omitempty" jsonschema:"description=List of nameservers for 
the node"`
@@ -101,3 +102,17 @@
        Name         string                 `yaml:"name" 
jsonschema:"description=Name of the volume config"`
        Provisioning block.ProvisioningSpec `yaml:"provisioning" 
jsonschema:"description=Provisioning spec of the volume config"`
 }
+
+type MachineFiles []*MachineFile
+
+type MachineFile struct {
+       v1alpha1.MachineFile `yaml:",inline"`
+       SkipEnvsubst         bool `yaml:"skipEnvsubst" 
jsonschema:"description=Whether to skip envsubst to the contents (only for 
contents in another file)"`
+}
+
+type ClusterInlineManifests []*ClusterInlineManifest
+
+type ClusterInlineManifest struct {
+       v1alpha1.ClusterInlineManifest `yaml:",inline"`
+       SkipEnvsubst                   bool `yaml:"skipEnvsubst" 
jsonschema:"description=Whether to skip envsubst to the contents (only for 
contents in another file)"`
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/config/defaults.go 
new/talhelper-3.0.19/pkg/config/defaults.go
--- old/talhelper-3.0.18/pkg/config/defaults.go 2025-02-06 05:08:44.000000000 
+0100
+++ new/talhelper-3.0.19/pkg/config/defaults.go 2025-02-14 04:38:18.000000000 
+0100
@@ -13,7 +13,7 @@
 )
 
 // renovate: depName=siderolabs/talos datasource=github-releases
-var LatestTalosVersion = "v1.9.3"
+var LatestTalosVersion = "v1.9.4"
 
 //go:embed schemas/talos-extensions.json
 var schemaFile []byte
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/config/loader.go 
new/talhelper-3.0.19/pkg/config/loader.go
--- old/talhelper-3.0.18/pkg/config/loader.go   2025-02-06 05:08:44.000000000 
+0100
+++ new/talhelper-3.0.19/pkg/config/loader.go   2025-02-14 04:38:18.000000000 
+0100
@@ -4,7 +4,6 @@
        "fmt"
        "log/slog"
        "os"
-       "strings"
 
        "github.com/budimanjojo/talhelper/v3/pkg/substitute"
        "github.com/fatih/color"
@@ -44,6 +43,16 @@
                return nil, fmt.Errorf("failed to unmarshal config file: %s", 
err)
        }
 
+       if len(cfg.ClusterInlineManifests) > 0 {
+               for i, manifest := range cfg.ClusterInlineManifests {
+                       contents, err := 
substitute.SubstituteFileContent(manifest.InlineManifestContents, 
!manifest.SkipEnvsubst)
+                       if err != nil {
+                               return nil, fmt.Errorf("failed to get 
inlineManifest content for %s in `inlineManifest[%d]`: %s", 
manifest.InlineManifestContents, i, err)
+                       }
+                       manifest.InlineManifestContents = contents
+               }
+       }
+
        for k := range cfg.Nodes {
                node := &cfg.Nodes[k]
 
@@ -58,7 +67,7 @@
 
                if len(node.MachineFiles) > 0 {
                        for i, file := range node.MachineFiles {
-                               contents, err := 
ensureFileContent(file.FileContent)
+                               contents, err := 
substitute.SubstituteFileContent(file.FileContent, !file.SkipEnvsubst)
                                if err != nil {
                                        return nil, fmt.Errorf("failed to get 
machine file content for %s in `machineFiles[%d]`: %s", node.Hostname, i, err)
                                }
@@ -133,24 +142,3 @@
        }
        return c, nil
 }
-
-func ensureFileContent(value string) (string, error) {
-       if strings.HasPrefix(value, "@") {
-               slog.Debug(fmt.Sprintf("getting file content of %s", value))
-               filename := value[1:]
-
-               contents, err := os.ReadFile(filename)
-               if err != nil {
-                       return "", err
-               }
-
-               substituted, err := substitute.SubstituteEnvFromByte(contents)
-               if err != nil {
-                       return "", err
-               }
-
-               return string(substituted), nil
-       }
-
-       return value, nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/config/schemas/talconfig.json 
new/talhelper-3.0.19/pkg/config/schemas/talconfig.json
--- old/talhelper-3.0.18/pkg/config/schemas/talconfig.json      2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/pkg/config/schemas/talconfig.json      2025-02-14 
04:38:18.000000000 +0100
@@ -161,6 +161,28 @@
       "additionalProperties": false,
       "type": "object"
     },
+    "ClusterInlineManifest": {
+      "properties": {
+        "name": {
+          "type": "string"
+        },
+        "contents": {
+          "type": "string"
+        },
+        "skipEnvsubst": {
+          "type": "boolean",
+          "description": "Whether to skip envsubst to the contents (only for 
contents in another file)"
+        }
+      },
+      "additionalProperties": false,
+      "type": "object"
+    },
+    "ClusterInlineManifests": {
+      "items": {
+        "$ref": "#/$defs/ClusterInlineManifest"
+      },
+      "type": "array"
+    },
     "ConfigFile": {
       "properties": {
         "content": {
@@ -542,11 +564,21 @@
         },
         "op": {
           "type": "string"
+        },
+        "skipEnvsubst": {
+          "type": "boolean",
+          "description": "Whether to skip envsubst to the contents (only for 
contents in another file)"
         }
       },
       "additionalProperties": false,
       "type": "object"
     },
+    "MachineFiles": {
+      "items": {
+        "$ref": "#/$defs/MachineFile"
+      },
+      "type": "array"
+    },
     "MachineSpec": {
       "properties": {
         "mode": {
@@ -719,10 +751,7 @@
           "description": "List of additional disks to partition"
         },
         "machineFiles": {
-          "items": {
-            "$ref": "#/$defs/MachineFile"
-          },
-          "type": "array",
+          "$ref": "#/$defs/MachineFiles",
           "description": "List of files to create inside the node"
         },
         "disableSearchDomain": {
@@ -844,10 +873,7 @@
           "description": "List of additional disks to partition"
         },
         "machineFiles": {
-          "items": {
-            "$ref": "#/$defs/MachineFile"
-          },
-          "type": "array",
+          "$ref": "#/$defs/MachineFiles",
           "description": "List of files to create inside the node"
         },
         "disableSearchDomain": {
@@ -1101,6 +1127,10 @@
           "type": "array",
           "description": "Extra certificate SANs for the API server's 
certificate"
         },
+        "inlineManifests": {
+          "$ref": "#/$defs/ClusterInlineManifests",
+          "description": "A list of inline Kubernetes manifests for the 
cluster"
+        },
         "clusterPodNets": {
           "items": {
             "type": "string"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talhelper-3.0.18/pkg/config/schemas/talos-extensions.json 
new/talhelper-3.0.19/pkg/config/schemas/talos-extensions.json
--- old/talhelper-3.0.18/pkg/config/schemas/talos-extensions.json       
2025-02-06 05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/pkg/config/schemas/talos-extensions.json       
2025-02-14 04:38:18.000000000 +0100
@@ -14653,6 +14653,177 @@
             ]
         },
         {
+            "version": "v1.9.3-5-g6b92401",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.9.3-6-g9ee2ba4",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.9.3-7-g5eec54c",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
             "version": "v1.9.3",
             "systemExtensions": [
                 "siderolabs/amdgpu",
@@ -14796,6 +14967,149 @@
             ]
         },
         {
+            "version": "v1.9.4",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": [
+                {
+                    "image": "siderolabs/sbc-raspberrypi",
+                    "name": "rpi_generic",
+                    "digest": 
"sha256:b1fe0c2906d2b35e7bc15194a272ef0820239a27b24d8d9f0ebdc286c20ee314"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "rockpi4",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "rockpi4c",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "rock4cplus",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "rock4se",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "nanopi-r4s",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "nanopi-r5s",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "rock64",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "orangepi-5",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "orangepi-r1-plus-lts",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "helios64",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "turingrk1",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-rockchip",
+                    "name": "rock5b",
+                    "digest": 
"sha256:6985a25afad4c6c0010d199c15d4fe75ff42b5d31777d28462819ff4a8fbfced"
+                },
+                {
+                    "image": "siderolabs/sbc-jetson",
+                    "name": "jetson_nano",
+                    "digest": 
"sha256:b76664e87a7ddbaad4dfe1973b3d3d212a2c67d2a3fa587e840453387720ab4e"
+                },
+                {
+                    "image": "siderolabs/sbc-allwinner",
+                    "name": "bananapi_m64",
+                    "digest": 
"sha256:89bd0565cdd113c790a491889cd355bdad6580cc7f30aeb44694730f703e6f67"
+                },
+                {
+                    "image": "siderolabs/sbc-allwinner",
+                    "name": "libretech_all_h3_cc_h5",
+                    "digest": 
"sha256:89bd0565cdd113c790a491889cd355bdad6580cc7f30aeb44694730f703e6f67"
+                },
+                {
+                    "image": "siderolabs/sbc-allwinner",
+                    "name": "pine64",
+                    "digest": 
"sha256:89bd0565cdd113c790a491889cd355bdad6580cc7f30aeb44694730f703e6f67"
+                }
+            ]
+        },
+        {
             "version": "v1.10.0-alpha.0",
             "systemExtensions": [
                 "siderolabs/amdgpu",
@@ -15594,6 +15908,354 @@
             "systemExtensions": [
                 "siderolabs/amdgpu",
                 "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/nvme-cli",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.10.0-alpha.1-2-g5cd226e",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/nvme-cli",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.10.0-alpha.1-3-g8a17f71",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/nvme-cli",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.10.0-alpha.1-4-ge12c495",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/nvme-cli",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.10.0-alpha.1-5-gfd5b270",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/nvme-cli",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.10.0-alpha.1-6-g4e31964",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
+                "siderolabs/binfmt-misc",
+                "siderolabs/bnx2-bnx2x",
+                "siderolabs/btrfs",
+                "siderolabs/chelsio-drivers",
+                "siderolabs/chelsio-firmware",
+                "siderolabs/cloudflared",
+                "siderolabs/crun",
+                "siderolabs/drbd",
+                "siderolabs/dvb-cx23885",
+                "siderolabs/ecr-credential-provider",
+                "siderolabs/fuse3",
+                "siderolabs/gasket-driver",
+                "siderolabs/glibc",
+                "siderolabs/gvisor",
+                "siderolabs/gvisor-debug",
+                "siderolabs/hello-world-service",
+                "siderolabs/i915",
+                "siderolabs/intel-ice-firmware",
+                "siderolabs/intel-ucode",
+                "siderolabs/iscsi-tools",
+                "siderolabs/kata-containers",
+                "siderolabs/lldpd",
+                "siderolabs/mdadm",
+                "siderolabs/mei",
+                "siderolabs/metal-agent",
+                "siderolabs/nut-client",
+                "siderolabs/nvidia-container-toolkit-lts",
+                "siderolabs/nvidia-container-toolkit-production",
+                "siderolabs/nvidia-fabricmanager-lts",
+                "siderolabs/nvidia-fabricmanager-production",
+                "siderolabs/nvidia-open-gpu-kernel-modules-lts",
+                "siderolabs/nvidia-open-gpu-kernel-modules-production",
+                "siderolabs/nvme-cli",
+                "siderolabs/qemu-guest-agent",
+                "siderolabs/qlogic-firmware",
+                "siderolabs/realtek-firmware",
+                "siderolabs/spin",
+                "siderolabs/stargz-snapshotter",
+                "siderolabs/tailscale",
+                "siderolabs/thunderbolt",
+                "siderolabs/uinput",
+                "siderolabs/usb-modem-drivers",
+                "siderolabs/util-linux-tools",
+                "siderolabs/v4l-uvc-drivers",
+                "siderolabs/vmtoolsd-guest-agent",
+                "siderolabs/wasmedge",
+                "siderolabs/xen-guest-agent",
+                "siderolabs/zfs",
+                "siderolabs/nonfree-kmod-nvidia-lts",
+                "siderolabs/nonfree-kmod-nvidia-production"
+            ],
+            "overlays": null
+        },
+        {
+            "version": "v1.10.0-alpha.1-7-g8591d3c",
+            "systemExtensions": [
+                "siderolabs/amdgpu",
+                "siderolabs/amd-ucode",
                 "siderolabs/binfmt-misc",
                 "siderolabs/bnx2-bnx2x",
                 "siderolabs/btrfs",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/config/validate.go 
new/talhelper-3.0.19/pkg/config/validate.go
--- old/talhelper-3.0.18/pkg/config/validate.go 2025-02-06 05:08:44.000000000 
+0100
+++ new/talhelper-3.0.19/pkg/config/validate.go 2025-02-14 04:38:18.000000000 
+0100
@@ -47,6 +47,7 @@
        checkDomain(c, &result)
        checkClusterNets(c, &result)
        checkCNIConfig(c, &result)
+       checkClusterInlineManifests(c, &result)
        for k, node := range c.Nodes {
                slog.Debug(fmt.Sprintf("validating config file for node %s", 
node.Hostname))
                checkNodeRequiredCfg(node, k, &result)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/config/validator.go 
new/talhelper-3.0.19/pkg/config/validator.go
--- old/talhelper-3.0.18/pkg/config/validator.go        2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/pkg/config/validator.go        2025-02-14 
04:38:18.000000000 +0100
@@ -216,6 +216,25 @@
        return result
 }
 
+func checkClusterInlineManifests(c TalhelperConfig, result *Errors) *Errors {
+       if c.ClusterInlineManifests != nil {
+               var messages *multierror.Error
+
+               cims := c.ClusterInlineManifests.GetIMs()
+               err := cims.Validate()
+               messages = multierror.Append(messages, err)
+
+               if messages.ErrorOrNil() != nil {
+                       return result.Append(&Error{
+                               Kind:    "InvalidClusterInlineManifests",
+                               Field:   getFieldYamlTag(c, "inlineManifests"),
+                               Message: formatError(messages),
+                       })
+               }
+       }
+       return result
+}
+
 func checkNodeRequiredCfg(node Node, idx int, result *Errors) *Errors {
        if node.Hostname == "" {
                e := &Error{
@@ -371,11 +390,12 @@
 
 func checkNodeMachineFiles(node Node, idx int, result *Errors) *Errors {
        if node.MachineFiles != nil {
+               mfs := node.MachineFiles.GetMFs()
                var messages *multierror.Error
                pattern := `^create$|^append$|^overwrite$`
                re := regexp.MustCompile(pattern)
 
-               for _, file := range node.MachineFiles {
+               for _, file := range mfs {
                        if !re.MatchString(file.FileOp) {
                                messages = multierror.Append(messages, 
fmt.Errorf("%q is not a valid operation name (create,append,overwrite)", 
file.Op()))
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/config/wrapper.go 
new/talhelper-3.0.19/pkg/config/wrapper.go
--- old/talhelper-3.0.18/pkg/config/wrapper.go  1970-01-01 01:00:00.000000000 
+0100
+++ new/talhelper-3.0.19/pkg/config/wrapper.go  2025-02-14 04:38:18.000000000 
+0100
@@ -0,0 +1,23 @@
+package config
+
+import (
+       "github.com/siderolabs/talos/pkg/machinery/config/types/v1alpha1"
+)
+
+func (mfs MachineFiles) GetMFs() []*v1alpha1.MachineFile {
+       result := make([]*v1alpha1.MachineFile, 0, len(mfs))
+
+       for _, mf := range mfs {
+               result = append(result, &mf.MachineFile)
+       }
+       return result
+}
+
+func (cims ClusterInlineManifests) GetIMs() *v1alpha1.ClusterInlineManifests {
+       result := make(v1alpha1.ClusterInlineManifests, 0, len(cims))
+
+       for _, im := range cims {
+               result = append(result, im.ClusterInlineManifest)
+       }
+       return &result
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/generate/config.go 
new/talhelper-3.0.19/pkg/generate/config.go
--- old/talhelper-3.0.18/pkg/generate/config.go 2025-02-06 05:08:44.000000000 
+0100
+++ new/talhelper-3.0.19/pkg/generate/config.go 2025-02-14 04:38:18.000000000 
+0100
@@ -14,6 +14,7 @@
        "github.com/budimanjojo/talhelper/v3/pkg/config"
        "github.com/budimanjojo/talhelper/v3/pkg/patcher"
        "github.com/budimanjojo/talhelper/v3/pkg/talos"
+       taloscfg "github.com/siderolabs/talos/pkg/machinery/config"
 )
 
 // GenerateConfig takes `TalhelperConfig` and path to encrypted `secretFile` 
and generates
@@ -26,13 +27,23 @@
        }
 
        for _, node := range c.Nodes {
-               var cfg []byte
+               var rawcfg taloscfg.Provider
 
                fileName := c.ClusterName + "-" + node.Hostname + ".yaml"
                cfgFile := outDir + "/" + fileName
                slog.Debug(fmt.Sprintf("generating %s for node %s", cfgFile, 
node.Hostname))
 
-               cfg, err = talos.GenerateNodeConfigBytes(&node, input, 
c.GetImageFactory(), offlineMode)
+               rawcfg, err = talos.GenerateNodeConfig(&node, input, 
c.GetImageFactory(), offlineMode)
+               if err != nil {
+                       return err
+               }
+
+               // this is needed because the upstream cluster input doesn't 
handle inline manifests and some others so we need to do it ourselves
+               if len(c.ClusterInlineManifests) > 0 {
+                       
rawcfg.RawV1Alpha1().ClusterConfig.ClusterInlineManifests = 
*c.ClusterInlineManifests.GetIMs()
+               }
+
+               cfg, err := rawcfg.Bytes()
                if err != nil {
                        return err
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/substitute/contentsubst.go 
new/talhelper-3.0.19/pkg/substitute/contentsubst.go
--- old/talhelper-3.0.18/pkg/substitute/contentsubst.go 1970-01-01 
01:00:00.000000000 +0100
+++ new/talhelper-3.0.19/pkg/substitute/contentsubst.go 2025-02-14 
04:38:18.000000000 +0100
@@ -0,0 +1,36 @@
+package substitute
+
+import (
+       "fmt"
+       "log/slog"
+       "os"
+       "strings"
+)
+
+// SubstituteFileContent will read and return the content of a file if `value` 
is string prefixed with `@`
+// followed by a path. Otherwise the value will be returned as it is.
+// The content will also be envsubst-ed if `envsubst` is `true`.
+// It will also returns an error, if any.
+func SubstituteFileContent(value string, envsubst bool) (string, error) {
+       if strings.HasPrefix(value, "@") {
+               slog.Debug(fmt.Sprintf("getting file content of %s", value))
+               filename := value[1:]
+
+               contents, err := os.ReadFile(filename)
+               if err != nil {
+                       return "", err
+               }
+
+               if envsubst {
+                       substituted, err := SubstituteEnvFromByte(contents)
+                       if err != nil {
+                               return "", err
+                       }
+                       return string(substituted), nil
+               }
+
+               return string(contents), nil
+       }
+
+       return value, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/substitute/contentsubst_test.go 
new/talhelper-3.0.19/pkg/substitute/contentsubst_test.go
--- old/talhelper-3.0.18/pkg/substitute/contentsubst_test.go    1970-01-01 
01:00:00.000000000 +0100
+++ new/talhelper-3.0.19/pkg/substitute/contentsubst_test.go    2025-02-14 
04:38:18.000000000 +0100
@@ -0,0 +1,69 @@
+package substitute
+
+import (
+       "os"
+       "strings"
+       "testing"
+)
+
+func TestSubstituteFileContent(t *testing.T) {
+       contents := []string{
+               "@./testdata/content.yaml",
+               "this is $host",
+       }
+       envs := map[string]string{
+               "host":           "substhost",
+               "remote_addr":    "substremote_addr",
+               "request_method": "substrequest_method",
+               "uri":            "substuri",
+       }
+
+       for env, value := range envs {
+               os.Setenv(env, value)
+       }
+
+       expectedWithoutEnvsubst := []string{
+               `---
+# Source: cilium/templates/hubble-ui/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: hubble-ui-nginx
+  namespace: kube-system
+data:
+  nginx.conf: "server {\n    listen       8081;\n    listen       [::]:8081;\n 
   server_name  localhost;\n    root /app;\n    index index.html;\n    
client_max_body_size 1G;\n\n    location / {\n        proxy_set_header Host 
$host;\n        proxy_set_header X-Real-IP $remote_addr;\n\n        # CORS\n    
    add_header Access-Control-Allow-Methods \"GET, POST, PUT, HEAD, DELETE, 
OPTIONS\";\n        add_header Access-Control-Allow-Origin *;\n        
add_header Access-Control-Max-Age 1728000;\n        add_header 
Access-Control-Expose-Headers content-length,grpc-status,grpc-message;\n        
add_header Access-Control-Allow-Headers 
range,keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout;\n
        if ($request_method = OPTIONS) {\n            return 204;\n        }\n  
      # /CORS\n\n        location /api {\n            proxy_http_version 1.1;\n 
           proxy_p
 ass_request_headers on;\n            proxy_hide_header 
Access-Control-Allow-Origin;\n            proxy_pass http://127.0.0.1:8090;\n   
     }\n        location / {\n            # double ` + "`" + "/index.html" + 
"`" + ` is required here \n            try_files $uri $uri/ /index.html 
/index.html;\n        }\n\n        # Liveness probe\n        location /healthz 
{\n            access_log off;\n            add_header Content-Type 
text/plain;\n            return 200 'ok';\n        }\n    }\n}"
+---`,
+               "this is $host",
+       }
+
+       expectedWithEnvsubst := []string{
+               `apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: hubble-ui-nginx
+  namespace: kube-system
+data:
+  nginx.conf: "server {\n    listen       8081;\n    listen       [::]:8081;\n 
   server_name  localhost;\n    root /app;\n    index index.html;\n    
client_max_body_size 1G;\n\n    location / {\n        proxy_set_header Host 
substhost;\n        proxy_set_header X-Real-IP substremote_addr;\n\n        # 
CORS\n        add_header Access-Control-Allow-Methods \"GET, POST, PUT, HEAD, 
DELETE, OPTIONS\";\n        add_header Access-Control-Allow-Origin *;\n        
add_header Access-Control-Max-Age 1728000;\n        add_header 
Access-Control-Expose-Headers content-length,grpc-status,grpc-message;\n        
add_header Access-Control-Allow-Headers 
range,keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout;\n
        if (substrequest_method = OPTIONS) {\n            return 204;\n        
}\n        # /CORS\n\n        location /api {\n            proxy_http_version 
1.1;\n       
      proxy_pass_request_headers on;\n            proxy_hide_header 
Access-Control-Allow-Origin;\n            proxy_pass http://127.0.0.1:8090;\n   
     }\n        location / {\n            # double ` + "`" + "/index.html" + 
"`" + ` is required here \n            try_files substuri substuri/ /index.html 
/index.html;\n        }\n\n        # Liveness probe\n        location /healthz 
{\n            access_log off;\n            add_header Content-Type 
text/plain;\n            return 200 'ok';\n        }\n    }\n}"
+---`, // header and comments are removed by SubstituteEnvFromByte()
+               "this is $host", // ignored when it's not a file
+       }
+
+       for k, v := range contents {
+               r1, err := SubstituteFileContent(v, false)
+               if err != nil {
+                       t.Fatal(err)
+               }
+
+               if expectedWithoutEnvsubst[k] != strings.TrimSpace(r1) {
+                       t.Errorf("got\n%s,\bwant\n%s", strings.TrimSpace(r1), 
expectedWithoutEnvsubst[k])
+               }
+
+               r2, err := SubstituteFileContent(v, true)
+               if err != nil {
+                       t.Fatal(err)
+               }
+               if expectedWithEnvsubst[k] != strings.TrimSpace(r2) {
+                       t.Errorf("got\n%s,\bwant\n%s", strings.TrimSpace(r2), 
expectedWithEnvsubst[k])
+               }
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/substitute/pathsubst.go 
new/talhelper-3.0.19/pkg/substitute/pathsubst.go
--- old/talhelper-3.0.18/pkg/substitute/pathsubst.go    2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/pkg/substitute/pathsubst.go    2025-02-14 
04:38:18.000000000 +0100
@@ -77,7 +77,7 @@
 
 func shouldSubstitute(path []string) bool {
        for _, p := range path {
-               if p == "machineFiles" || p == "patches" || p == 
"extraManifests" {
+               if p == "machineFiles" || p == "patches" || p == 
"extraManifests" || p == "inlineManifests" {
                        return true
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/talhelper-3.0.18/pkg/substitute/testdata/content.yaml 
new/talhelper-3.0.19/pkg/substitute/testdata/content.yaml
--- old/talhelper-3.0.18/pkg/substitute/testdata/content.yaml   1970-01-01 
01:00:00.000000000 +0100
+++ new/talhelper-3.0.19/pkg/substitute/testdata/content.yaml   2025-02-14 
04:38:18.000000000 +0100
@@ -0,0 +1,10 @@
+---
+# Source: cilium/templates/hubble-ui/configmap.yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: hubble-ui-nginx
+  namespace: kube-system
+data:
+  nginx.conf: "server {\n    listen       8081;\n    listen       [::]:8081;\n 
   server_name  localhost;\n    root /app;\n    index index.html;\n    
client_max_body_size 1G;\n\n    location / {\n        proxy_set_header Host 
$host;\n        proxy_set_header X-Real-IP $remote_addr;\n\n        # CORS\n    
    add_header Access-Control-Allow-Methods \"GET, POST, PUT, HEAD, DELETE, 
OPTIONS\";\n        add_header Access-Control-Allow-Origin *;\n        
add_header Access-Control-Max-Age 1728000;\n        add_header 
Access-Control-Expose-Headers content-length,grpc-status,grpc-message;\n        
add_header Access-Control-Allow-Headers 
range,keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout;\n
        if ($request_method = OPTIONS) {\n            return 204;\n        }\n  
      # /CORS\n\n        location /api {\n            proxy_http_version 1.1;\n 
           proxy_p
 ass_request_headers on;\n            proxy_hide_header 
Access-Control-Allow-Origin;\n            proxy_pass http://127.0.0.1:8090;\n   
     }\n        location / {\n            # double `/index.html` is required 
here \n            try_files $uri $uri/ /index.html /index.html;\n        }\n\n 
       # Liveness probe\n        location /healthz {\n            access_log 
off;\n            add_header Content-Type text/plain;\n            return 200 
'ok';\n        }\n    }\n}"
+---
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/pkg/talos/nodeconfig.go 
new/talhelper-3.0.19/pkg/talos/nodeconfig.go
--- old/talhelper-3.0.18/pkg/talos/nodeconfig.go        2025-02-06 
05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/pkg/talos/nodeconfig.go        2025-02-14 
04:38:18.000000000 +0100
@@ -125,7 +125,7 @@
 
        if len(node.MachineFiles) > 0 {
                slog.Debug("setting machine files")
-               cfg.RawV1Alpha1().MachineConfig.MachineFiles = node.MachineFiles
+               cfg.RawV1Alpha1().MachineConfig.MachineFiles = 
node.MachineFiles.GetMFs()
        }
 
        if node.Schematic != nil && 
len(node.Schematic.Customization.ExtraKernelArgs) > 0 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/talhelper-3.0.18/talhelper.json 
new/talhelper-3.0.19/talhelper.json
--- old/talhelper-3.0.18/talhelper.json 2025-02-06 05:08:44.000000000 +0100
+++ new/talhelper-3.0.19/talhelper.json 2025-02-14 04:38:18.000000000 +0100
@@ -1,12 +1,12 @@
 {
-    "version": "3.0.17",
+    "version": "3.0.18",
     "architecture": {
         "64bit": {
-            "url": 
"https://github.com/budimanjojo/talhelper/releases/download/v3.0.17/talhelper_windows_amd64.tar.gz";,
+            "url": 
"https://github.com/budimanjojo/talhelper/releases/download/v3.0.18/talhelper_windows_amd64.tar.gz";,
             "bin": [
                 "talhelper.exe"
             ],
-            "hash": 
"3a5639fa816690d67a145fd2f736b0afc375d82f51324ec6735c86edac6fa29f"
+            "hash": 
"24d5bb120480f82cd2a1b8e88ee55cfc028cbbbf61d15da9787a2ff2131ffd91"
         }
     },
     "homepage": "https://github.com/budimanjojo/talhelper";,

++++++ talhelper.obsinfo ++++++
--- /var/tmp/diff_new_pack.WCtikW/_old  2025-02-14 19:21:22.023861764 +0100
+++ /var/tmp/diff_new_pack.WCtikW/_new  2025-02-14 19:21:22.051862923 +0100
@@ -1,5 +1,5 @@
 name: talhelper
-version: 3.0.18
-mtime: 1738814924
-commit: 9485b27b38a26949dc95f111f9fa028ca3b3e002
+version: 3.0.19
+mtime: 1739504298
+commit: 7ec1c27cf88400d73cbcabab5c22e50e72413daf
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/talhelper/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.talhelper.new.8181/vendor.tar.gz differ: char 5, 
line 1

Reply via email to