Azure / Azure/draft

Missing namespace in deploy step when using kustomize deployment target

Open
#239 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Go
Stars
644
Forks
74
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**

When creating a project using deployment type `kustomize`, the cli wizard will ask for target namespace:

```
✔ Please enter the namespace to place new resources in (default: default):
```

When using a non-default namespace, for example `foo`, the wizard will create the k8s deployment configuration like this:

```yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: draft-demo
labels:
app: draft-demo
namespace: foo
```

However, the later workflow setup wizard will not prompt for target namespace, and generate a deployment step like this:

```
# Deploys application based on manifest files from previous step
- name: Deploy application
uses: Azure/k8s-deploy@v4
with:
action: deploy
manifests: ${{ steps.bake.outputs.manifestsBundle }}
images: |
${{ env.AZURE_CONTAINER_REGISTRY }}.azurecr.io/${{ env.CONTAINER_NAME }}:${{ github.sha }}
```

This deployment step will deploy to `default` namespace by default:

```
Run Azure/k8s-deploy@v4
with:
action: deploy
manifests:
images:

namespace: default # <---- default value for namespace
pull-images: true
strategy: basic
route-method: service
version-switch-buffer: 0
traffic-split-method: pod
percentage: 0
force: false
token: ***
annotate-namespace: true
private-cluster: false
skip-tls-verify: false
```

Hence, the deployment will fail with error like:

```
the namespace from the provided object "foo" does not match the namespace "default". You must pass '--namespace=foo' to perform this operation.
```

**Mention the platform you are using**

OSS draft

**To Reproduce**
Steps to reproduce the behavior:

See above description.

**Expected behavior**

When using kustomize deployment target:

1. the namespace should be set in `kustomization.yaml` instead of k8s object spec. By using a kustomization level namespace settings, we can ensure all controlled k8s objects are created under the same namespace.
2. namespace settings should set in the deploy GitHub Action step.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.