'CircleCI run failed on delete k8s resource

I have CircleCI setup and running fine normally, it will helps with creating deployment for me. Today I have suddenly had an issue with the step in creating the deployment due to an error related to kubernetes.

I have the config.yml followed the doc from https://circleci.com/developer/orbs/orb/circleci/kubernetes

Here is my version of setup in the config file:

version: 2.1

orbs: 
  kube-orb: circleci/[email protected]

commands:
  docker-check:
    steps: 
      - docker/check:
        docker-username: MY_USERNAME
        docker-password: MY_PASS
        registry: $DOCKER_REGISTRY

jobs: 
  create-deployment:
    executor: aws-eks/python3
    parameters: 
      cluster-name:
        description: Name of the EKS cluster
        type: string
    steps:
      - checkout
      # It failed on this step
      - kube-orb/delete-resource:
        now: true
        resource-names: my-frontend-deployment
        resource-types: deployments
        wait: true

Below is a copy of the error log

#!/bin/bash -eo pipefail
#!/bin/bash
RESOURCE_FILE_PATH=$(eval echo "$PARAM_RESOURCE_FILE_PATH")
RESOURCE_TYPES=$(eval echo "$PARAM_RESOURCE_TYPES")
RESOURCE_NAMES=$(eval echo "$PARAM_RESOURCE_NAMES")
LABEL_SELECTOR=$(eval echo "$PARAM_LABEL_SELECTOR")
ALL=$(eval echo "$PARAM_ALL")
CASCADE=$(eval echo "$PARAM_CASCADE")
FORCE=$(eval echo "$PARAM_FORCE")
GRACE_PERIOD=$(eval echo "$PARAM_GRACE_PERIOD")
IGNORE_NOT_FOUND=$(eval echo "$PARAM_IGNORE_NOT_FOUND")
NOW=$(eval echo "$PARAM_NOW")
WAIT=$(eval echo "$PARAM_WAIT")
NAMESPACE=$(eval echo "$PARAM_NAMESPACE")
DRY_RUN=$(eval echo "$PARAM_DRY_RUN")
KUSTOMIZE=$(eval echo "$PARAM_KUSTOMIZE")
if [ -n "${RESOURCE_FILE_PATH}" ]; then
    if [ "${KUSTOMIZE}" == "1" ]; then
    set -- "$@" -k
    else
    set -- "$@" -f
    fi
    set -- "$@" "${RESOURCE_FILE_PATH}"
elif [ -n "${RESOURCE_TYPES}" ]; then
    set -- "$@" "${RESOURCE_TYPES}"
    if [ -n "${RESOURCE_NAMES}" ]; then
    set -- "$@" "${RESOURCE_NAMES}"
    elif [ -n "${LABEL_SELECTOR}" ]; then
    set -- "$@" -l
    set -- "$@" "${LABEL_SELECTOR}"
    fi
fi
if [ "${ALL}" == "true" ]; then
    set -- "$@" --all=true
fi
if [ "${FORCE}" == "true" ]; then
    set -- "$@" --force=true
fi
if [ "${GRACE_PERIOD}" != "-1" ]; then
    set -- "$@" --grace-period="${GRACE_PERIOD}"
fi
if [ "${IGNORE_NOT_FOUND}" == "true" ]; then
    set -- "$@" --ignore-not-found=true
fi
if [ "${NOW}" == "true" ]; then
    set -- "$@" --now=true
fi
if [ -n "${NAMESPACE}" ]; then
    set -- "$@" --namespace="${NAMESPACE}"
fi
if [ -n "${DRY_RUN}" ]; then
    set -- "$@" --dry-run="${DRY_RUN}"
fi
set -- "$@" --wait="${WAIT}"
set -- "$@" --cascade="${CASCADE}"
if [ "$SHOW_EKSCTL_COMMAND" == "1" ]; then
    set -x
fi
kubectl delete "$@"
if [ "$SHOW_EKSCTL_COMMAND" == "1" ]; then
    set +x
fi

error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1"

Exited with code exit status 1
CircleCI received exit code 1

Does anyone have idea what is wrong with it? Im not sure whether the issue is happening on Circle CI side or Kubernetes side.



Solution 1:[1]

I was facing the exact issue since yesterday morning (16 hours ago). Then taking @Gavy's advice, I simply added this in my config.yml:

steps:
  - checkout
  # !!! HERE !!!
  - kubernetes/install-kubectl:
      kubectl-version: v1.23.5
  - run:

And now it works. Hope it helps.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 shinkou