Skip to content

Bug: cannot use set-context as reusable workflow #310

Description

@Krikooo

What happened?

Hello folks!

I tried to the set-context as an reusable job (https://docs.github.com/en/actions/using-workflows/reusing-workflows) like this:

name: k8s_connection_to_cluster
on:
  workflow_call:
jobs:
  connection:
    name: Setup k8s client
    runs-on: self-hosted
    steps:
        - name: Setup k8s client
          uses: azure/setup-kubectl@v3
          with:
            version: v1.28.6 # default is latest stable
          id: install
        - name: Connect to k8s cluster
          uses: azure/k8s-set-context@v3
          with:
            method: kubeconfig
            kubeconfig: ${{ secrets.K8S_PROD_CONFIG }}
            context: kubernetes-admin@kubernetes # current-context from kubeconfig is used as default

And then call it in my workflow like this:


name: Deploy cronjobs on k8s
on:
  push:
    branches:
      - master
    paths:
      - 'infra/kubernetes/**'
  workflow_dispatch:

    
jobs:
    setup_kubectl:
      name: Setup client & connect to cluster
      uses: foobar/infrastructure/.github/workflows/deploy_kubernetes_connection.yaml@main
      secrets: inherit

    kubernetes:
      needs: setup_kubectl
      runs-on: self-hosted
  
      steps:
        - uses: actions/checkout@v4
        - name: Create old envfile as secret
          uses: azure/k8s-create-secret@v2
          with:
            namespace: foobar
            secret-type: 'generic'
            secret-name: envfile-old
            string-data: ${{ secrets.K8S_ENV_OLD_CRON }}
        - name: Deploy configmap yml files on k8s
          uses: Azure/k8s-deploy@v4
          with:
            namespace: 'foobar'
            manifests: |
                infra/kubernetes/configmap.*.yml
        - name: Deploy cronjob yml files on k8s
          uses: Azure/k8s-deploy@v4
          with:
            namespace: 'foobar'
            manifests: |
                infra/kubernetes/cronjob.*.yml
    clean:
      if: always()
      needs: kubernetes
      uses: foobar/infrastructure/.github/workflows/deploy_docker_clean.yaml@main```

But when the workflow had run and I get this:

Error: Error: Cluster context not set. Use k8s-set-context/aks-set-context action to set cluster context


### Version

- [X] I am using the latest version

### Runner

self-hosted

### Relevant log output

##[debug]Evaluating condition for step: 'Create old envfile as secret'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Create old envfile as secret
##[debug]Loading inputs
##[debug]Evaluating: secrets.K8S_ENV_OLD_CRON
##[debug]Evaluating Index:
##[debug]..Evaluating secrets:
##[debug]..=> Object
##[debug]..Evaluating String:
##[debug]..=> 'K8S_ENV_OLD_CRON'
##[debug]=> '***
##[debug]'
##[debug]Result: '***
##[debug]'
##[debug]Loading env
Run azure/k8s-create-secret@v[2](https://github.com/foobar/foobar/actions/runs/8068795893/job/22068903639#step:4:2)
  with:
    namespace: foobar
    secret-type: generic
    secret-name: envfile-old
    string-data: ***
  
Error: Error: Cluster context not set. Use k[8](https://github.com/foobar/foobar/actions/runs/8068795893/job/22068903639#step:4:8)s-set-context/aks-set-context action to set cluster context
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Create old envfile as secret

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions