<p>I'm running into a missing resources issue when submitting a <code>Workflow</code>. The Kubernetes namespace <code>my-namespace</code> has a quota enabled, and for whatever reason the pods being created after submitting the workflow are failing with:</p>
<pre><code>pods &quot;hello&quot; is forbidden: failed quota: team: must specify limits.cpu,limits.memory,requests.cpu,requests.memory
</code></pre>
<p>I'm submitting the following <code>Workflow</code>,</p>
<pre><code>apiVersion: &quot;argoproj.io/v1alpha1&quot;
kind: &quot;Workflow&quot;
metadata:
  name: &quot;hello&quot;
  namespace: &quot;my-namespace&quot;
spec:
  entrypoint: &quot;main&quot;
  templates:
  - name: &quot;main&quot;
    container:
      image: &quot;docker/whalesay&quot;
      resources:
        requests:
          memory: 0
          cpu: 0
        limits:
          memory: &quot;128Mi&quot;
          cpu: &quot;250m&quot;
</code></pre>
<p>Argo is running on Kubernetes 1.19.6 and was deployed with the <a href="https://github.com/argoproj/argo-helm" rel="nofollow noreferrer">official Helm chart</a> version 0.16.10. Here are my Helm values:</p>
<pre><code>controller:
  workflowNamespaces:
  - &quot;my-namespace&quot;
  resources:
    requests:
      memory: 0
      cpu: 0
    limits:
      memory: 500Mi
      cpu: 0.5
  pdb:
    enabled: true
  # See https://argoproj.github.io/argo-workflows/workflow-executors/
  # docker container runtime is not present in the TKGI clusters
  containerRuntimeExecutor: &quot;k8sapi&quot;
workflow:
  namespace: &quot;my-namespace&quot;
  serviceAccount:
    create: true
  rbac:
    create: true
server:
  replicas: 2
  secure: false
  resources:
    requests:
      memory: 0
      cpu: 0
    limits:
      memory: 500Mi
      cpu: 0.5
  pdb:
    enabled: true
executer:
  resources:
    requests:
      memory: 0
      cpu: 0
    limits:
      memory: 500Mi
      cpu: 0.5
</code></pre>
<p>Any ideas on what I may be missing? Thanks, Weldon</p>
<p>Update 1: I tried another namespace without quotas enabled and got past the missing resources issue. However I now see: <code>Failed to establish pod watch: timed out waiting for the condition</code>. Here's what the <code>spec</code> looks like for this pod. You can see the <code>wait</code> container is missing <code>resources</code>. This is the container causing the issue reported by this question.</p>
<pre><code>spec:
  containers:
  - command:
    - argoexec
    - wait
    env:
    - name: ARGO_POD_NAME
      valueFrom:
        fieldRef:
          apiVersion: v1
          fieldPath: metadata.name
    - name: ARGO_CONTAINER_RUNTIME_EXECUTOR
      value: k8sapi
    image: argoproj/argoexec:v2.12.5
    imagePullPolicy: IfNotPresent
    name: wait
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /argo/podmetadata
      name: podmetadata
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: default-token-v4jlb
      readOnly: true
  - image: docker/whalesay
    imagePullPolicy: Always
    name: main
    resources:
      limits:
        cpu: 250m
        memory: 128Mi
      requests:
        cpu: &quot;0&quot;
        memory: &quot;0&quot;

</code></pre>

<p>try deploying the workflow on another namespace if you can, and verify if it's working or not.</p>
<p>if you can try with removing the quota for respective namespace.</p>
<p>instead of quota you can also use the</p>
<pre><code>apiVersion: v1
kind: LimitRange
metadata:
  name: default-limit-range
spec:
  limits:
  - default:
      memory: 512Mi
      cpu: 250m
    defaultRequest:
      cpu: 50m
      memory: 64Mi
    type: Container
</code></pre>
<p>so any container have not resource request, limit mentioned that will get this default config of 50m CPU &amp; 64 Mi Memory.</p>
<p><a href="https://kubernetes.io/docs/concepts/policy/limit-range/" rel="nofollow noreferrer">https://kubernetes.io/docs/concepts/policy/limit-range/</a></p>
