flux2 icon indicating copy to clipboard operation
flux2 copied to clipboard

flux build/diff: fs-security-constraint error

Open Thaval opened this issue 2 years ago • 4 comments

Describe the bug

When running flux build ..., an error is shown that indicates security issue. For example:

flux build kustomization my-app --path ./corpsol --kustomization-file ./corpsol/kustomization.yaml

will display the following error

✗ kustomize build failed: fs-security-constraint abs ./corpsol: path './corpsol' is not in or below 'C:\'

The kustomization.yaml looks like this

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- helm-release.yaml
- ../../../../.common/helm_templates/flux_manifests/alert.yaml

Steps to reproduce

  • Install Flux
  • Run flux build kustomization my-app --path ./corpsol --kustomization-file ./corpsol/kustomization.yaml
  • See the error - fs-security-constraint (no files are built)

Expected behavior

The kustomization should be built successfully, so that a preview is shown.

Screenshots and recordings

No response

OS / Distro

Windows 10

Flux version

v0.30.2

Flux check

flux check ► checking prerequisites ✔ Kubernetes 1.22.6 >=1.20.6-0 ► checking controllers ✔ helm-controller: deployment ready ► ghcr.io/fluxcd/helm-controller:v0.21.0 ✔ kustomize-controller: deployment ready ► ghcr.io/fluxcd/kustomize-controller:v0.25.0 ✔ notification-controller: deployment ready ► ghcr.io/fluxcd/notification-controller:v0.23.5 ✔ source-controller: deployment ready ► ghcr.io/fluxcd/source-controller:v0.24.4 ✔ all checks passed

Git provider

No response

Container Registry provider

No response

Additional context

No response

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

Thaval avatar May 30 '22 12:05 Thaval

@Thaval can we get the root of ./corpsol?

souleb avatar Jun 01 '22 15:06 souleb

@souleb What do you mean: The files and contents or the absolute path of ./corpsol?

Thaval avatar Jun 01 '22 15:06 Thaval

The absolute path of ./corpsol.

hiddeco avatar Jun 01 '22 15:06 hiddeco

@hiddeco @souleb The absolute path is C:\Users\dave\source\repos\infra\clusters\apps\domains\corpsol

Thaval avatar Jun 01 '22 21:06 Thaval

What's the current state?

Thaval avatar Sep 26 '22 07:09 Thaval

Hello There. I felt behind, but I still plan to fix this.

souleb avatar Sep 26 '22 13:09 souleb

Alright, thanks! :) Could you reproduce this? Let me know if you need more information.

Thaval avatar Sep 28 '22 14:09 Thaval

getting the same error for flux diff:

✗ kustomize build failed: must build at directory: not a valid directory: fs-security-constraint abs C:\flux-fleet\clusters\prd: path 'C:\flux-fleet\clusters\prd' is not in or below 'C:\'

same error for any kustomizations (I only use flux ones, not kustomize ones)\path combo

4c74356b41 avatar Oct 19 '22 11:10 4c74356b41

Fixing this on Windows is not going to be easy as none of the Flux maintainers use MSFT products. I suggest installing the Flux CLI on Windows Subsystem for Linux which has no issues.

stefanprodan avatar Oct 19 '22 11:10 stefanprodan

can you, perhaps, point me to the code that is throwing? I'm willing to try, however I'm not really good with go :(

4c74356b41 avatar Oct 19 '22 11:10 4c74356b41

The error comes from our own filesystem implementation https://github.com/fluxcd/pkg/blob/main/kustomize/filesys/fs_secure.go

stefanprodan avatar Oct 19 '22 11:10 stefanprodan

thanks, i'll try looking at it, but at a glance it doesn't look like something I'll be able to figure out xD

4c74356b41 avatar Oct 19 '22 11:10 4c74356b41

@stefanprodan Ok, understand this. Totally new to golang, but I only use Windows. However, is there a guide on how to kickstart flux development? Would like to know how to run the code and test changes.

Just a note for myself: https://github.com/fluxcd/flux2/pull/2764

Thaval avatar Oct 19 '22 12:10 Thaval

@Thaval can you try with this pull request: https://github.com/fluxcd/flux2/pull/3317?

souleb avatar Nov 15 '22 11:11 souleb

@Thaval can you try with this pull request: https://github.com/fluxcd/flux2/pull/3317?

Sure I can. But I need to figure out how to run the commands or better said, build and use the project.

Thaval avatar Nov 15 '22 23:11 Thaval

⋊> ~ make build-dev                                                                                         10:14:28
⋊> ~ ./bin/flux diff kustomization ...

souleb avatar Nov 16 '22 09:11 souleb

this doesnt build a binary for windows? at least for me.

i think this works to build for windows: export GOOS=windows

4c74356b41 avatar Nov 16 '22 09:11 4c74356b41

okay, with this build it is actually working! sweeeet.

.\flux.exe diff kustomization --path C:\_git\xxx\infrastructure\core\ cluster-base
✓  Kustomization diffing...
► Namespace/yyy drifted

metadata.labels
  + one map entry added:
    test: test

⚠️ identified at least one change, exiting with non-zero exit code

4c74356b41 avatar Nov 16 '22 09:11 4c74356b41