From 011ae151343fd255f0a3d1075311eed03fad00d9 Mon Sep 17 00:00:00 2001 From: Damien Dassieu Date: Thu, 9 Jan 2025 22:31:44 +0100 Subject: [PATCH] Hotfix: avoid using pointer to the decoder interface Signed-off-by: Damien Dassieu --- .github/workflows/test-upgrade.yml | 45 +++++++++++++++++++ .github/workflows/tests.yml | 37 +-------------- .../v1beta2/remotesyncer_rules_permissions.go | 2 +- .../v1beta2/remoteuser_secrets_permissions.go | 2 +- .../v1beta2/remoteuserbinding_permissions.go | 2 +- pkg/utils/webhooks.go | 2 +- 6 files changed, 50 insertions(+), 40 deletions(-) create mode 100644 .github/workflows/test-upgrade.yml diff --git a/.github/workflows/test-upgrade.yml b/.github/workflows/test-upgrade.yml new file mode 100644 index 0000000..3566dbd --- /dev/null +++ b/.github/workflows/test-upgrade.yml @@ -0,0 +1,45 @@ +name: Tests upgrade + +on: + # run it on push to the default repository branch + push: + branches: + - '*' + pull_request: + +jobs: + + test-helm-upgrade: + name: Helm upgrade test + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Install kubectl + uses: azure/setup-kubectl@v1 + with: + version: 'latest' + + - name: Set up KinD + uses: helm/kind-action@v1.2.0 + with: + version: v0.23.0 + cluster_name: syngit-dev-cluster + + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: '1.22' + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y make + + - name: Run tests + run: make test-chart-upgrade \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4ec857f..1a79808 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -115,39 +115,4 @@ jobs: sudo apt-get install -y make - name: Run tests - run: make test-chart-install - - test-helm-upgrade: - name: Helm upgrade test - runs-on: ubuntu-latest - - steps: - - name: Checkout repository - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 - - - name: Install kubectl - uses: azure/setup-kubectl@v1 - with: - version: 'latest' - - - name: Set up KinD - uses: helm/kind-action@v1.2.0 - with: - version: v0.23.0 - cluster_name: syngit-dev-cluster - - - name: Set up Go - uses: actions/setup-go@v2 - with: - go-version: '1.22' - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y make - - - name: Run tests - run: make test-chart-upgrade \ No newline at end of file + run: make test-chart-install \ No newline at end of file diff --git a/internal/webhook/v1beta2/remotesyncer_rules_permissions.go b/internal/webhook/v1beta2/remotesyncer_rules_permissions.go index ee2e074..dae7aca 100644 --- a/internal/webhook/v1beta2/remotesyncer_rules_permissions.go +++ b/internal/webhook/v1beta2/remotesyncer_rules_permissions.go @@ -27,7 +27,7 @@ func (rswh *RemoteSyncerWebhookHandler) Handle(ctx context.Context, req admissio rs := &syngit.RemoteSyncer{} - if err := utils.GetObjectFromWebhookRequest(rswh.Decoder, rs, req); err != nil { + if err := utils.GetObjectFromWebhookRequest(*rswh.Decoder, rs, req); err != nil { return admission.Errored(http.StatusBadRequest, err) } diff --git a/internal/webhook/v1beta2/remoteuser_secrets_permissions.go b/internal/webhook/v1beta2/remoteuser_secrets_permissions.go index 59e5c7e..de76ba4 100644 --- a/internal/webhook/v1beta2/remoteuser_secrets_permissions.go +++ b/internal/webhook/v1beta2/remoteuser_secrets_permissions.go @@ -29,7 +29,7 @@ func (ruwh *RemoteUserPermissionsWebhookHandler) Handle(ctx context.Context, req ru := &syngit.RemoteUser{} - if err := utils.GetObjectFromWebhookRequest(ruwh.Decoder, ru, req); err != nil { + if err := utils.GetObjectFromWebhookRequest(*ruwh.Decoder, ru, req); err != nil { return admission.Errored(http.StatusBadRequest, err) } diff --git a/internal/webhook/v1beta2/remoteuserbinding_permissions.go b/internal/webhook/v1beta2/remoteuserbinding_permissions.go index 7122e58..4afdeaa 100644 --- a/internal/webhook/v1beta2/remoteuserbinding_permissions.go +++ b/internal/webhook/v1beta2/remoteuserbinding_permissions.go @@ -29,7 +29,7 @@ func (rubwh *RemoteUserBindingPermissionsWebhookHandler) Handle(ctx context.Cont rub := &syngit.RemoteUserBinding{} - if err := utils.GetObjectFromWebhookRequest(rubwh.Decoder, rub, req); err != nil { + if err := utils.GetObjectFromWebhookRequest(*rubwh.Decoder, rub, req); err != nil { return admission.Errored(http.StatusBadRequest, err) } diff --git a/pkg/utils/webhooks.go b/pkg/utils/webhooks.go index bb21f8e..5553280 100644 --- a/pkg/utils/webhooks.go +++ b/pkg/utils/webhooks.go @@ -23,7 +23,7 @@ func OperationToVerb(operation admissionv1.OperationType) ([]string, error) { } } -func GetObjectFromWebhookRequest(decoder *admission.Decoder, obj runtime.Object, req admission.Request) error { +func GetObjectFromWebhookRequest(decoder admission.Decoder, obj runtime.Object, req admission.Request) error { if string(req.Operation) != "DELETE" { err := decoder.Decode(req, obj)