> For the complete CircleCI developer hub index, see [llms.txt](https://circleci.com/developer/llms.txt)

# cloudify/cfy

Provides convenient access to Cloudify Manager from within CircleCI
jobs.


## Commands

### init

Initializes a Cloudify CLI profile.

Use this Action if your job actually requires a CLI profile; for example - when using the Cloudify CLI
(`cfy`) directly. `cfyci` commands create a CLI profile automatically.


### create

Creates an environment by uploading a blueprint, creating a deployment and running the `install` workflow.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Name of Cloudify environment to create |
| `blueprint` | string |  | Path/URL to blueprint (YAML file or archive file) |
| `inputs-file` | string | - | Path to YAML/JSON inputs file |
| `outputs-file` | string | - | Path to JSON file to receive the Cloudify environment's outputs
and capabilities
 |

### delete

Deletes an environment by running the `uninstall` workflow and deleting the
deployment. Optionally, also deletes the blueprint from which the deployment was created.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Name of Cloudify environment to delete |
| `delete-blueprint` | boolean | false | If no more deployments exist for the blueprint, then delete the
blueprint as well
 |
| `ignore-failure` | boolean | false | Whether or not to ignore failures during deletion |

### get-environment-data

Retrieves a Cloudify environment's data, into a file.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Name of Cloudify environment to get data for |
| `outputs-file` | string | - | Path to JSON file to receive the Cloudify environment's outputs
and capabilities
 |

### cli

Runs a generic Cloudify CLI command.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `command` | string |  | Command to run |

### execute-workflow

Executes a workflow on a Cloudify deployment.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Name of Cloudify environment to execute workflow on |
| `workflow` | string |  | Name of workflow to execute |
| `parameters-file` | string |  | Path to YAML/JSON containing workflow parameters |

### install-or-update

Creates a deployment, or updates an existing one.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Name of Cloudify environment to create or update |
| `blueprint-id` | string |  | ID of blueprint to create the deployment from (if deployment doesn't
exist yet), or to update the deployment to (if already exists)
 |
| `delete-old-blueprint` | boolean | false | If true, and the deployment was updated, then delete the old blueprint
in case no other deployments exist for it
 |
| `inputs-file` | string | - | Path to YAML/JSON inputs file |
| `skip-install` | boolean | false | If this is a deployment update, then skip the `install` operations
 |
| `skip-uninstall` | boolean | false | If this is a deployment update, then skip the `uninstall` operations
 |
| `skip-reinstall` | boolean | false | If this is a deployment update, then skip reinstalling node instances
that require re-installation
 |
| `install-first` | boolean | false | If this is a deployment update, then run `install` operations before
`uninstall` ones
 |
| `outputs-file` | string | - | Path to JSON file to receive the Cloudify environment's outputs
and capabilities
 |

### arm

Creates an Azure ARM environment.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Name of Cloudify environment to create |
| `resource-group` | string |  | Name of resource group to create |
| `template-file` | string |  | URL/path to template file |
| `parameters-file` | string | - | YAML/JSON file containing template parameters |
| `location` | string | - | Azure location to create resource group in |
| `outputs-file` | string | - | Path to JSON file to receive the Cloudify environment's outputs
and capabilities
 |

### cfn

Creates an AWS CloudFormation environment.

The template can be provided in any of the following ways:

* Via the `template-url` parameter, containing a URL that points
  to the template. Note that, in this case, the template must reside
  in an S3 bucket.
* Via a combination of the `bucket-name` and `resource-name` parameters.
* Via the `template-file` parameter, pointing to a file that contains the
  template body.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Environment's name. |
| `stack-name` | string |  | CloudFormation's stack name. |
| `template-file` | string | - | Path to the file containing the template. |
| `bucket-name` | string | - | Name of S3 bucket to get the template from. If specified,
then "resource-name" must also be specified.
 |
| `resource-name` | string | - | Name of file, within the bucket specified by `bucket-name`, containing
the template to be used.
 |
| `template-url` | string | - | URL of CloudFormation template. |
| `parameters-file` | string | - | YAML/JSON file containing template parameters. |
| `outputs-file` | string | - | Path to generated environment output data. |

### terraform

Creates a Terraform environment.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Environment's name |
| `module-file` | string |  | URL/path to Terraform module archive |
| `variables-file` | string | - | YAML/JSON file containing template variables |
| `environment-file` | string | - | YAML/JSON file containing environment variables to pass to the Terraform process |
| `environment-mapping` | string |  | A whitespace-delimited list of strings. For each item:

* If it is of the form `k=v`, then the value of the environment variable `k` is passed
  as environment variable `v` to Terraform
* Otherwise, let the value be `x`; then the environment variable `x` is passed as-is
  to Terraform

This effectively passes environment variables, visible to the CI/CD platform,
as environment variables to Terraform. Useful, among others, for
passing Cloud credentials - stored in the CI/CD platform - to Terraform.
 |
| `outputs-file` | string | - | Path to generated environment output data |

### kubernetes

Creates a Kubernetes environment.


| Parameter | Type | Default | Description |
|---|---|---|---|
| `environment-name` | string |  | Environment's name. |
| `gcp-credentials-file` | string | - | Path to file containing GCP service account details. This is optional; either
this or `token-file` must be provided, but not both.
 |
| `token` | string | - | Kubernetes API token. This is optional; exactly one of [`token`,
`token-file`, `gcp-credentials-file`] must be provided.
 |
| `token-file` | string | - | Path to file containing an API token. This is optional; either this
or `gcp-credentials-file` must be provided, but not both.
 |
| `master-host` | string |  | Hostname/IP of the main Kubernetes host. |
| `namespace` | string | - | Application's namespace. |
| `app-definition-file` | string |  | Path to Kubernetes application definition file. |
| `ca-cert-file` | string | - | Path, on Cloudify Manager, of a file to use as a CA trust store when connecting
to the Kubernetes master host.
 |
| `ssl-cert-file` | string | - | Path, on Cloudify Manager, of a file to use as a certificate presented to the
Kubernetes master host upon connection.
 |
| `ssl-key-file` | string | - | Path, on Cloudify Manager, of the private key file associated with the certificate
specified by `ssl-cert-file`.
 |
| `skip-ssl-verification` | boolean | false | Whether to verify SSL connections. |
| `other-options-file` | string | - | YAML/JSON file containing additional Kubernetes options, to be passed along
with the namespace.
 |
| `validate-status` | boolean | false | Whether to validate the status of the application upon creation.
 |
| `allow-node-redefinition` | boolean | false | Whether to allow Kubernetes node redefinition. |
| `debug` | boolean | false | Whether to generate debug logging of Kubernetes calls. |
| `outputs-file` | string | - | Path to generated environment output data. |

## Executors

### default