Skip to content

Missing namespace in deploy step when using kustomize deployment target #239

Description

@bcho

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:

apiVersion: apps/v1kind: Deploymentmetadata:
name: draft-demolabels:
app: draft-demonamespace: 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: <omitted>
images: <omitted>
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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions