github.com/argoproj/argo-cd/v2@v2.10.9/docs/faq.md (about)

     1  # FAQ
     2  
     3  ## I've deleted/corrupted my repo and can't delete my app.
     4  
     5  Argo CD can't delete an app if it cannot generate manifests. You need to either:
     6  
     7  1. Reinstate/fix your repo.
     8  1. Delete the app using `--cascade=false` and then manually deleting the resources.
     9  
    10  ## Why is my application still `OutOfSync` immediately after a successful Sync?
    11  
    12  See [Diffing](user-guide/diffing.md) documentation for reasons resources can be OutOfSync, and ways to configure Argo CD
    13  to ignore fields when differences are expected.
    14  
    15  ## Why is my application stuck in `Progressing` state?
    16  
    17  Argo CD provides health for several standard Kubernetes types. The `Ingress`, `StatefulSet` and `SealedSecret` types have known issues
    18  which might cause health check to return `Progressing` state instead of `Healthy`.
    19  
    20  * `Ingress` is considered healthy if `status.loadBalancer.ingress` list is non-empty, with at least one value
    21    for `hostname` or `IP`. Some ingress controllers
    22    ([contour](https://github.com/heptio/contour/issues/403)
    23    , [traefik](https://github.com/argoproj/argo-cd/issues/968#issuecomment-451082913)) don't update
    24    `status.loadBalancer.ingress` field which causes `Ingress` to stuck in `Progressing` state forever.
    25  
    26  * `StatefulSet` is considered healthy if value of `status.updatedReplicas` field matches to `spec.replicas` field. Due
    27    to Kubernetes bug
    28    [kubernetes/kubernetes#68573](https://github.com/kubernetes/kubernetes/issues/68573) the `status.updatedReplicas` is
    29    not populated. So unless you run Kubernetes version which include the
    30    fix [kubernetes/kubernetes#67570](https://github.com/kubernetes/kubernetes/pull/67570) `StatefulSet` might stay
    31    in `Progressing` state.
    32  * Your `StatefulSet` or `DaemonSet` is using `OnDelete` instead of `RollingUpdate` strategy.
    33    See [#1881](https://github.com/argoproj/argo-cd/issues/1881).
    34  * For `SealedSecret`, see [Why are resources of type `SealedSecret` stuck in the `Progressing` state?](#sealed-secret-stuck-progressing)
    35  
    36  As workaround Argo CD allows providing [health check](operator-manual/health.md) customization which overrides default
    37  behavior.
    38  
    39  If you are using Traefik for your Ingress, you can update the Traefik config to publish the loadBalancer IP using [publishedservice](https://doc.traefik.io/traefik/providers/kubernetes-ingress/#publishedservice), which will resolve this issue.
    40  
    41  ```yaml
    42  providers:
    43    kubernetesIngress:
    44      publishedService:
    45        enabled: true
    46  ```
    47  
    48  ## I forgot the admin password, how do I reset it?
    49  
    50  For Argo CD v1.8 and earlier, the initial password is set to the name of the server pod, as
    51  per [the getting started guide](getting_started.md). For Argo CD v1.9 and later, the initial password is available from
    52  a secret named `argocd-initial-admin-secret`.
    53  
    54  To change the password, edit the `argocd-secret` secret and update the `admin.password` field with a new bcrypt hash.
    55  
    56  !!! note "Generating a bcrypt hash"
    57      Use the following command to generate a bcrypt hash for `admin.password`
    58  
    59          argocd account bcrypt --password <YOUR-PASSWORD-HERE>
    60  
    61  To apply the new password hash, use the following command (replacing the hash with your own):
    62  
    63  ```bash
    64  # bcrypt(password)=$2a$10$rRyBsGSHK6.uc8fntPwVIuLVHgsAhAX7TcdrqW/RADU0uh7CaChLa
    65  kubectl -n argocd patch secret argocd-secret \
    66    -p '{"stringData": {
    67      "admin.password": "$2a$10$rRyBsGSHK6.uc8fntPwVIuLVHgsAhAX7TcdrqW/RADU0uh7CaChLa",
    68      "admin.passwordMtime": "'$(date +%FT%T%Z)'"
    69    }}'
    70  ```
    71  
    72  Another option is to delete both the `admin.password` and `admin.passwordMtime` keys and restart argocd-server. This
    73  will generate a new password as per [the getting started guide](getting_started.md), so either to the name of the pod (
    74  Argo CD 1.8 and earlier)
    75  or a randomly generated password stored in a secret (Argo CD 1.9 and later).
    76  
    77  ## How to disable admin user?
    78  
    79  Add `admin.enabled: "false"` to the `argocd-cm` ConfigMap (
    80  see [user management](./operator-manual/user-management/index.md)).
    81  
    82  ## Argo CD cannot deploy Helm Chart based applications without internet access, how can I solve it?
    83  
    84  Argo CD might fail to generate Helm chart manifests if the chart has dependencies located in external repositories. To
    85  solve the problem you need to make sure that `requirements.yaml`
    86  uses only internally available Helm repositories. Even if the chart uses only dependencies from internal repos Helm
    87  might decide to refresh `stable` repo. As workaround override
    88  `stable` repo URL in `argocd-cm` config map:
    89  
    90  ```yaml
    91  data:
    92    repositories: |
    93      - type: helm
    94        url: http://<internal-helm-repo-host>:8080
    95        name: stable
    96  ```
    97  
    98  ## After deploying my Helm application with Argo CD I cannot see it with `helm ls` and other Helm commands
    99  
   100  When deploying a Helm application Argo CD is using Helm
   101  only as a template mechanism. It runs `helm template` and
   102  then deploys the resulting manifests on the cluster instead of doing `helm install`. This means that you cannot use any Helm command
   103  to view/verify the application. It is fully managed by Argo CD.
   104  Note that Argo CD supports natively some capabilities that you might miss in Helm (such as the history and rollback commands).
   105  
   106  This decision was made so that Argo CD is neutral
   107  to all manifest generators.
   108  
   109  
   110  ## I've configured [cluster secret](./operator-manual/declarative-setup.md#clusters) but it does not show up in CLI/UI, how do I fix it?
   111  
   112  Check if cluster secret has `argocd.argoproj.io/secret-type: cluster` label. If secret has the label but the cluster is
   113  still not visible then make sure it might be a permission issue. Try to list clusters using `admin` user (
   114  e.g. `argocd login --username admin && argocd cluster list`).
   115  
   116  ## Argo CD is unable to connect to my cluster, how do I troubleshoot it?
   117  
   118  Use the following steps to reconstruct configured cluster config and connect to your cluster manually using kubectl:
   119  
   120  ```bash
   121  kubectl exec -it <argocd-pod-name> bash # ssh into any argocd server pod
   122  argocd admin cluster kubeconfig https://<cluster-url> /tmp/config --namespace argocd # generate your cluster config
   123  KUBECONFIG=/tmp/config kubectl get pods # test connection manually
   124  ```
   125  
   126  Now you can manually verify that cluster is accessible from the Argo CD pod.
   127  
   128  ## How Can I Terminate A Sync?
   129  
   130  To terminate the sync, click on the "synchronisation" then "terminate":
   131  
   132  ![Synchronization](assets/synchronization-button.png) ![Terminate](assets/terminate-button.png)
   133  
   134  ## Why Is My App `Out Of Sync` Even After Syncing?
   135  
   136  In some cases, the tool you use may conflict with Argo CD by adding the `app.kubernetes.io/instance` label. E.g. using
   137  Kustomize common labels feature.
   138  
   139  Argo CD automatically sets the `app.kubernetes.io/instance` label and uses it to determine which resources form the app.
   140  If the tool does this too, this causes confusion. You can change this label by setting
   141  the `application.instanceLabelKey` value in the `argocd-cm`. We recommend that you use `argocd.argoproj.io/instance`.
   142  
   143  !!! note
   144      When you make this change your applications will become out of sync and will need re-syncing.
   145  
   146  See [#1482](https://github.com/argoproj/argo-cd/issues/1482).
   147  
   148  ## How often does Argo CD check for changes to my Git or Helm repository ?
   149  
   150  The default polling interval is 3 minutes (180 seconds) with a configurable jitter.
   151  You can change the setting by updating the `timeout.reconciliation` value and the `timeout.reconciliation.jitter` in the [argocd-cm](https://github.com/argoproj/argo-cd/blob/2d6ce088acd4fb29271ffb6f6023dbb27594d59b/docs/operator-manual/argocd-cm.yaml#L279-L282) config map. If there are any Git changes, Argo CD will only update applications with the [auto-sync setting](user-guide/auto_sync.md) enabled. If you set it to `0` then Argo CD will stop polling Git repositories automatically and you can only use alternative methods such as [webhooks](operator-manual/webhook.md) and/or manual syncs for deploying applications.
   152  
   153  
   154  ## Why Are My Resource Limits `Out Of Sync`?
   155  
   156  Kubernetes has normalized your resource limits when they are applied, and then Argo CD has then compared the version in
   157  your generated manifests to the normalized one is Kubernetes - they won't match.
   158  
   159  E.g.
   160  
   161  * `'1000m'` normalized to `'1'`
   162  * `'0.1'` normalized to `'100m'`
   163  * `'3072Mi'` normalized to `'3Gi'`
   164  * `3072` normalized to `'3072'` (quotes added)
   165  
   166  To fix this use diffing
   167  customizations [settings](./user-guide/diffing.md#known-kubernetes-types-in-crds-resource-limits-volume-mounts-etc).
   168  
   169  ## How Do I Fix `invalid cookie, longer than max length 4093`?
   170  
   171  Argo CD uses a JWT as the auth token. You likely are part of many groups and have gone over the 4KB limit which is set
   172  for cookies. You can get the list of groups by opening "developer tools -> network"
   173  
   174  * Click log in
   175  * Find the call to `<argocd_instance>/auth/callback?code=<random_string>`
   176  
   177  Decode the token at [https://jwt.io/](https://jwt.io/). That will provide the list of teams that you can remove yourself
   178  from.
   179  
   180  See [#2165](https://github.com/argoproj/argo-cd/issues/2165).
   181  
   182  ## Why Am I Getting `rpc error: code = Unavailable desc = transport is closing` When Using The CLI?
   183  
   184  Maybe you're behind a proxy that does not support HTTP 2? Try the `--grpc-web` flag:
   185  
   186  ```bash
   187  argocd ... --grpc-web
   188  ```
   189  
   190  ## Why Am I Getting `x509: certificate signed by unknown authority` When Using The CLI?
   191  
   192  The certificate created by default by Argo CD is not automatically recognised by the Argo CD CLI, in order
   193  to create a secure system you must follow the instructions to [install a certificate](/operator-manual/tls/)
   194  and configure your client OS to trust that certificate.
   195  
   196  If you're not running in a production system (e.g. you're testing Argo CD out), try the `--insecure` flag:
   197  
   198  ```bash
   199  argocd ... --insecure
   200  ```
   201  
   202  !!! warning "Do not use `--insecure` in production"
   203  
   204  ## I have configured Dex via `dex.config` in `argocd-cm`, it still says Dex is unconfigured. Why?
   205  
   206  Most likely you forgot to set the `url` in `argocd-cm` to point to your Argo CD as well. See also
   207  [the docs](./operator-manual/user-management/index.md#2-configure-argo-cd-for-sso).
   208  
   209  ## Why are `SealedSecret` resources reporting a `Status`?
   210  
   211  Versions of `SealedSecret` up to and including `v0.15.0` (especially through helm `1.15.0-r3`) don't include
   212  a [modern CRD](https://github.com/bitnami-labs/sealed-secrets/issues/555) and thus the status field will not
   213  be exposed (on k8s `1.16+`). If your Kubernetes deployment is [modern](
   214  https://www.openshift.com/blog/a-look-into-the-technical-details-of-kubernetes-1-16), ensure you're using a
   215  fixed CRD if you want this feature to work at all.
   216  
   217  ## <a name="sealed-secret-stuck-progressing"></a>Why are resources of type `SealedSecret` stuck in the `Progressing` state?
   218  
   219  The controller of the `SealedSecret` resource may expose the status condition on resource it provisioned. Since
   220  version `v2.0.0` Argo CD picks up that status condition to derive a health status for the `SealedSecret`.
   221  
   222  Versions before `v0.15.0` of the `SealedSecret` controller are affected by an issue regarding this status
   223  conditions updates, which is why this feature is disabled by default in these versions. Status condition updates may be
   224  enabled by starting the `SealedSecret` controller with the `--update-status` command line parameter or by setting
   225  the `SEALED_SECRETS_UPDATE_STATUS` environment variable.
   226  
   227  To disable Argo CD from checking the status condition on `SealedSecret` resources, add the following resource
   228  customization in your `argocd-cm` ConfigMap via `resource.customizations.health.<group_kind>` key.
   229  
   230  ```yaml
   231  resource.customizations.health.bitnami.com_SealedSecret: |
   232    hs = {}
   233    hs.status = "Healthy"
   234    hs.message = "Controller doesn't report resource status"
   235    return hs
   236  ```
   237  
   238  ## How do I fix `The order in patch list … doesn't match $setElementOrder list: …`?
   239  
   240  An application may trigger a sync error labeled a `ComparisonError` with a message like:
   241  
   242  > The order in patch list: [map[name:**KEY_BC** value:150] map[name:**KEY_BC** value:500] map[name:**KEY_BD** value:250] map[name:**KEY_BD** value:500] map[name:KEY_BI value:something]] doesn't match $setElementOrder list: [map[name:KEY_AA] map[name:KEY_AB] map[name:KEY_AC] map[name:KEY_AD] map[name:KEY_AE] map[name:KEY_AF] map[name:KEY_AG] map[name:KEY_AH] map[name:KEY_AI] map[name:KEY_AJ] map[name:KEY_AK] map[name:KEY_AL] map[name:KEY_AM] map[name:KEY_AN] map[name:KEY_AO] map[name:KEY_AP] map[name:KEY_AQ] map[name:KEY_AR] map[name:KEY_AS] map[name:KEY_AT] map[name:KEY_AU] map[name:KEY_AV] map[name:KEY_AW] map[name:KEY_AX] map[name:KEY_AY] map[name:KEY_AZ] map[name:KEY_BA] map[name:KEY_BB] map[name:**KEY_BC**] map[name:**KEY_BD**] map[name:KEY_BE] map[name:KEY_BF] map[name:KEY_BG] map[name:KEY_BH] map[name:KEY_BI] map[name:**KEY_BC**] map[name:**KEY_BD**]]
   243  
   244  
   245  There are two parts to the message:
   246  
   247  1. `The order in patch list: [`
   248  
   249      This identifies values for items, especially items that appear multiple times:
   250  
   251      > map[name:**KEY_BC** value:150] map[name:**KEY_BC** value:500] map[name:**KEY_BD** value:250] map[name:**KEY_BD** value:500] map[name:KEY_BI value:something]
   252  
   253      You'll want to identify the keys that are duplicated -- you can focus on the first part, as each duplicated key will appear, once for each of its value with its value in the first list. The second list is really just
   254  
   255     `]`
   256  
   257  2. `doesn't match $setElementOrder list: [`
   258  
   259      This includes all of the keys. It's included for debugging purposes -- you don't need to pay much attention to it. It will give you a hint about the precise location in the list for the duplicated keys:
   260  
   261      > map[name:KEY_AA] map[name:KEY_AB] map[name:KEY_AC] map[name:KEY_AD] map[name:KEY_AE] map[name:KEY_AF] map[name:KEY_AG] map[name:KEY_AH] map[name:KEY_AI] map[name:KEY_AJ] map[name:KEY_AK] map[name:KEY_AL] map[name:KEY_AM] map[name:KEY_AN] map[name:KEY_AO] map[name:KEY_AP] map[name:KEY_AQ] map[name:KEY_AR] map[name:KEY_AS] map[name:KEY_AT] map[name:KEY_AU] map[name:KEY_AV] map[name:KEY_AW] map[name:KEY_AX] map[name:KEY_AY] map[name:KEY_AZ] map[name:KEY_BA] map[name:KEY_BB] map[name:**KEY_BC**] map[name:**KEY_BD**] map[name:KEY_BE] map[name:KEY_BF] map[name:KEY_BG] map[name:KEY_BH] map[name:KEY_BI] map[name:**KEY_BC**] map[name:**KEY_BD**]
   262  
   263     `]`
   264  
   265  In this case, the duplicated keys have been **emphasized** to help you identify the problematic keys. Many editors have the ability to highlight all instances of a string, using such an editor can help with such problems.
   266  
   267  The most common instance of this error is with `env:` fields for `containers`.
   268  
   269  !!! note "Dynamic applications"
   270      It's possible that your application is being generated by a tool in which case the duplication might not be evident within the scope of a single file. If you have trouble debugging this problem, consider filing a ticket to the owner of the generator tool asking them to improve its validation and error reporting.