# ArgoCD

## Example Usage

***

{% tabs %}
{% tab title="Terraform" %}
{% code title="argocd-integration.tf" %}

```tf
resource "apono_integration" "argocd-integration" {
  name                     = "ArgoCD"
  type                     = "argocd"
  connector_id             = "apono-connector-id"
  connected_resource_types = ["argocd-global-role"]
  metadata = {
    k8s_server_url = "<Kubernetes Server URL>"
    argocd_ui_url = "<ArgoCD UI URL>"
    k8s_certificate_authority = "<Kubernetes Certificate Authority>"
    argo_namespace = "<ArgoCD Namespace>"
  }
  kubernetes_secret = {
    name      = "name_template_value"
    namespace = "namespace_template_value"
  }
}
```

{% endcode %}
{% endtab %}

{% tab title="Terraform V2" %}
{% code title="argocd-integration.tf" %}

```tf
resource "apono_resource_integration" "argocd-integration" {
  name                     = "ArgoCD"
  type                     = "argocd"
  connector_id             = "apono-connector-id"
  connected_resource_types = ["argocd-global-role"]
  integration_config = {
    k8s_server_url = "<Kubernetes Server URL>"
    argocd_ui_url = "<ArgoCD UI URL>"
    k8s_certificate_authority = "<Kubernetes Certificate Authority>"
    argo_namespace = "<ArgoCD Namespace>"
  }
  secret_store_config = {
    kubernetes = {
      name      = "name_template_value"
      namespace = "namespace_template_value"
    }
}
```

{% endcode %}
{% endtab %}

{% tab title="Public API" %}
{% code title="argocd-integration.json" %}

```json
{
    "argocd-integration": {
        "name": "ArgoCD",
        "type": "argocd",
        "connector_id": "apono-connector-id",
        "connected_resource_types": [
            "argocd-global-role"
        ],
        "integration_config": {
            "k8s_server_url": "<Kubernetes Server URL>",
            "argocd_ui_url": "<ArgoCD UI URL>",
            "k8s_certificate_authority": "<Kubernetes Certificate Authority>",
            "argo_namespace": "<ArgoCD Namespace>",
        },
	"secret_store_config": {
    	    "name": "name_template_value",
    	    "namespace": "namespace_template_value"
  	    }
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

## Schema

***

* `type` argocd
* `connected_resource_types` List of resource types to sync.

<details>

<summary>Available resource types you can use</summary>

* argocd-global-role
* argocd-project-role

</details>

### Integration Config

***

* `k8s_server_url` (Optional | String) Kubernetes Server URL
* `argocd_ui_url` (Required | String) ArgoCD UI URL
* `k8s_certificate_authority` (Optional | String) Kubernetes Certificate Authority
* `argo_namespace` (Required | String) ArgoCD Namespace
  * Default value: `argocd`
