<!-- toc -->
* [Configuration](#configuration)
* [System requirements](#system-requirements)
* [Usage](#usage)
* [Commands](#commands)
<!-- tocstop -->
# Configuration

`facetsctl` requires a connection to docker for all actions involving docker. Ensure that you have docker running on the system where `facetsctl` is running.

# System requirements

Supported node versions: >= 12.0.0   

# Usage
<!-- usage -->
```sh-session
$ npm install -g @facets-cloud/facetsctlv3
$ facetsctl COMMAND
running command...
$ facetsctl (--version)
@facets-cloud/facetsctlv3/1.1.6 linux-x64 node-v20.19.4
$ facetsctl --help [COMMAND]
USAGE
  $ facetsctl COMMAND
...
```
<!-- usagestop -->
# Commands
<!-- commands -->
* [`facetsctl artifact init`](#facetsctl-artifact-init)
* [`facetsctl artifact push`](#facetsctl-artifact-push)
* [`facetsctl artifact register`](#facetsctl-artifact-register)
* [`facetsctl artifact upload`](#facetsctl-artifact-upload)
* [`facetsctl cluster manage`](#facetsctl-cluster-manage)
* [`facetsctl help [COMMAND]`](#facetsctl-help-command)
* [`facetsctl login`](#facetsctl-login)
* [`facetsctl release sync APPS`](#facetsctl-release-sync-apps)
* [`facetsctl facetsctl release wait <apps> -p <value> -e <value> [--sync]`](#facetsctl-facetsctl-release-wait-apps--p-value--e-value---sync)

## `facetsctl artifact init`

Initialize artifact information

```
USAGE
  $ facetsctl artifact init -p <value> -a <value> [-s <value> | -c <value>]

FLAGS
  -a, --artifactory=<value>     (required) Artifactory name
  -c, --ci-integration=<value>  CI Integration Name
  -p, --project=<value>         (required) Project name
  -s, --service=<value>         Service name

DESCRIPTION
  Initialize artifact information

EXAMPLES
  $ facetsctl artifact init --project my-project --service my-service --artifactory my-artifactory
  Created artifact-info.facets.yaml
```

_See code: [src/commands/artifact/init.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/artifact/init.ts)_

## `facetsctl artifact push`

Push a Docker image to the configured artifact repository

```
USAGE
  $ facetsctl artifact push -d <value>

FLAGS
  -d, --docker-image=<value>  (required) URL of the Docker image to push

DESCRIPTION
  Push a Docker image to the configured artifact repository

EXAMPLES
  $ facetsctl artifact push --docker-image my-docker-image:latest
  Successfully pushed my-docker-image:latest
```

_See code: [src/commands/artifact/push.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/artifact/push.ts)_

## `facetsctl artifact register`

Register a Docker image with a specified type and value

```
USAGE
  $ facetsctl artifact register -t GIT_REF|ENVIRONMENT|RELEASE_STREAM -i <value> -v <value> [-r <value>]

FLAGS
  -i, --docker-image=<value>  (required) Docker image to register
  -r, --runId=<value>         Optional run ID to corelate to your CI system, else it will be time
  -t, --type=<option>         (required) Type (GIT_REF, ENVIRONMENT, RELEASE_STREAM)
                              <options: GIT_REF|ENVIRONMENT|RELEASE_STREAM>
  -v, --value=<value>         (required) Value of the specified type

DESCRIPTION
  Register a Docker image with a specified type and value

EXAMPLES
  $ facetsctl artifact register --type GIT_REF --docker-image my-docker-image:latest --value my-git-ref
  Successfully registered my-docker-image:latest
  Check out the registered build at: https://example.com/builds/1234
```

_See code: [src/commands/artifact/register.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/artifact/register.ts)_

## `facetsctl artifact upload`

Upload any type of application build file to the Facets Control Plane

```
USAGE
  $ facetsctl artifact upload -t GIT_REF|ENVIRONMENT|RELEASE_STREAM -f <value> -v <value> [-r <value>]

FLAGS
  -f, --file-path=<value>  (required) path to the application build file (e.g., WAR, JAR, ZIP) on your local system
  -r, --runId=<value>      Optional run ID to corelate to your CI system, else it will be time
  -t, --type=<option>      (required) Type (GIT_REF, ENVIRONMENT, RELEASE_STREAM)
                           <options: GIT_REF|ENVIRONMENT|RELEASE_STREAM>
  -v, --value=<value>      (required) Value of the specified type

DESCRIPTION
  Upload any type of application build file to the Facets Control Plane

EXAMPLES
  $ facetsctl artifact upload --type GIT_REF --file-path file-to-upload --value my-git-ref
        Successfully uploaded the file file-to-upload
        Check out the registered build at: https://example.com/builds/1234
```

_See code: [src/commands/artifact/upload.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/artifact/upload.ts)_

## `facetsctl cluster manage`

Interactive management of Kubernetes clusters with advanced functionality

```
USAGE
  $ facetsctl cluster manage [-a] [-s <value>] [-r] [-d] [-v]

FLAGS
  -a, --all             Process all available clusters
  -d, --download        Download kubeconfig files for selected clusters
  -r, --refresh         Refresh kubernetes credentials for selected clusters
  -s, --search=<value>  Search for specific clusters by name, ID, or stack name
  -v, --verbose         Show detailed output and metrics

DESCRIPTION
  Interactive management of Kubernetes clusters with advanced functionality

EXAMPLES
  $ facetsctl cluster manage

  $ facetsctl cluster manage --all

  $ facetsctl cluster manage --search production

  $ facetsctl cluster manage --all --refresh

  $ facetsctl cluster manage --all --download
```

_See code: [src/commands/cluster/manage.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/cluster/manage.ts)_

## `facetsctl help [COMMAND]`

Display help for facetsctl.

```
USAGE
  $ facetsctl help [COMMAND...] [-n]

ARGUMENTS
  COMMAND...  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for facetsctl.
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.0.22/src/commands/help.ts)_

## `facetsctl login`

Log in to the Facets control plane

```
USAGE
  $ facetsctl login -u <value> -t <value> -f <value>

FLAGS
  -f, --facets-url=<value>  (required) URL of the Control plane
  -t, --token=<value>       (required) Personal token
  -u, --username=<value>    (required) Username

DESCRIPTION
  Log in to the Facets control plane

EXAMPLES
  $ facetsctl login --username my-user --token my-token --facets-url https://facets-control-plane.example.com
  Logged in successfully
```

_See code: [src/commands/login.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/login.ts)_

## `facetsctl release sync APPS`

Sync out-of-sync apps to match their desired state with the deployed state

```
USAGE
  $ facetsctl release sync APPS -p <value> -e <value>

ARGUMENTS
  APPS  List of app names to sync (comma-separated | example: ... sync app1,app2,app3 -p ...)

FLAGS
  -e, --environment=<value>  (required) Environment name
  -p, --project=<value>      (required) Project name

DESCRIPTION
  Sync out-of-sync apps to match their desired state with the deployed state
```

_See code: [src/commands/release/sync.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/release/sync.ts)_

## `facetsctl facetsctl release wait <apps> -p <value> -e <value> [--sync]`

Wait for the sync status of the specified apps, and trigger sync if --sync is provided

```
USAGE
  $ facetsctl release wait facetsctl  <apps> -p <value> -e <value> [--sync]

ARGUMENTS
  APPS  List of app names to wait for (comma-separated | example: ... sync app1,app2,app3 -p ...)

FLAGS
  -e, --environment=<value>  (required) Environment name
  -p, --project=<value>      (required) Project name
      --sync                 Trigger a sync if apps are out-of-sync

DESCRIPTION
  Wait for the sync status of the specified apps, and trigger sync if --sync is provided
```

_See code: [src/commands/release/wait.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.6/src/commands/release/wait.ts)_
<!-- commandsstop -->
* [`facetsctl artifact init`](#facetsctl-artifact-init)
* [`facetsctl artifact push`](#facetsctl-artifact-push)
* [`facetsctl artifact register`](#facetsctl-artifact-register)
* [`facetsctl cluster manage`](#facetsctl-cluster-manage)
* [`facetsctl help [COMMAND]`](#facetsctl-help-command)
* [`facetsctl login`](#facetsctl-login)
* [`facetsctl release sync`](#facetsctl-release-sync)
* [`facetsctl release wait`](#facetsctl-release-wait)

## `facetsctl artifact init`

Initialize artifact information

```
USAGE
  $ facetsctl artifact init -p <value> -s <value> -a <value>

FLAGS
  -a, --artifactory=<value>  (required) Artifactory name
  -p, --project=<value>      (required) Project name
  -s, --service=<value>      (required) Service name

DESCRIPTION
  Initialize artifact information

EXAMPLES
  $ facetsctl artifact init --project my-project --service my-service --artifactory my-artifactory
  Created artifact-info.facets.yaml
```

_See code: [src/commands/artifact/init.ts](https://github.com/facets-cloud/facetsctl/blob/v1.0.0/src/commands/artifact/init.ts)_

## `facetsctl artifact push`

Push a Docker image to the configured artifact repository

```
USAGE
  $ facetsctl artifact push -d <value>

FLAGS
  -d, --docker-image=<value>  (required) URL of the Docker image to push

DESCRIPTION
  Push a Docker image to the configured artifact repository

EXAMPLES
  $ facetsctl artifact push --docker-image my-docker-image:latest
  Successfully pushed my-docker-image:latest
```

_See code: [src/commands/artifact/push.ts](https://github.com/facets-cloud/facetsctl/blob/v1.0.0/src/commands/artifact/push.ts)_

## `facetsctl artifact register`

Register a Docker image with a specified type and value

```
USAGE
  $ facetsctl artifact register -t GIT_REF|ENVIRONMENT|RELEASE_STREAM -i <value> -v <value> [-r <value>]

FLAGS
  -i, --docker-image=<value>  (required) Docker image to register
  -r, --runId=<value>         Optional run ID to corelate to your CI system, else it will be time
  -t, --type=<option>         (required) Type (GIT_REF, ENVIRONMENT, RELEASE_STREAM)
                              <options: GIT_REF|ENVIRONMENT|RELEASE_STREAM>
  -v, --value=<value>         (required) Value of the specified type

DESCRIPTION
  Register a Docker image with a specified type and value

EXAMPLES
  $ facetsctl artifact register --type GIT_REF --docker-image my-docker-image:latest --value my-git-ref
  Successfully registered my-docker-image:latest
  Check out the registered build at: https://example.com/builds/1234
```

_See code: [src/commands/artifact/register.ts](https://github.com/facets-cloud/facetsctl/blob/v1.0.0/src/commands/artifact/register.ts)_

## `facetsctl cluster manage`

Interactive management of Kubernetes clusters with advanced functionality.

```
USAGE
  $ facetsctl cluster manage [-a] [-s <value>] [-r] [-d]

FLAGS
  -a, --all            Process all available clusters
  -s, --search=<value> Search for specific clusters by name, ID, or stack name
  -r, --refresh        Refresh kubernetes credentials for selected clusters
  -d, --download       Download kubeconfig files for selected clusters

DESCRIPTION
  Interactive management of Kubernetes clusters with advanced functionality.
  
  This command provides a unified interface to:
  1. List all clusters from the control plane
  2. Search for specific clusters if needed
  3. Select one or more clusters from the list
  4. Choose to either download kubeconfig files or refresh Kubernetes credentials for the selected clusters
  5. Execute operations in parallel for better performance
  
  The command handles error reporting and provides detailed status information for each operation.
  Clusters without available kubeconfig files or credentials will be reported properly without failing.

EXAMPLES
  $ facetsctl cluster manage
  $ facetsctl cluster manage --all
  $ facetsctl cluster manage --search production
  $ facetsctl cluster manage --all --refresh
  $ facetsctl cluster manage --all --download
```

_See code: [src/commands/cluster/manage.ts](https://github.com/facets-cloud/facetsctl/blob/v1.0.0/src/commands/cluster/manage.ts)_

## `facetsctl help [COMMAND]`

Display help for facetsctl.

```
USAGE
  $ facetsctl help [COMMAND...] [-n]

ARGUMENTS
  COMMAND...  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for facetsctl.
```

_See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.0.22/src/commands/help.ts)_

## `facetsctl login`

Log in to the Facets control plane

```
USAGE
  $ facetsctl login -u <value> -t <value> -f <value>

FLAGS
  -f, --facets-url=<value>  (required) URL of the Control plane
  -t, --token=<value>       (required) Personal token
  -u, --username=<value>    (required) Username

DESCRIPTION
  Log in to the Facets control plane

EXAMPLES
  $ facetsctl login --username my-user --token my-token --facets-url https://facets-control-plane.example.com
  Logged in successfully
```

_See code: [src/commands/login.ts](https://github.com/facets-cloud/facetsctl/blob/v1.0.0/src/commands/login.ts)_

## `facetsctl release sync`

Sync out-of-sync apps to match their desired state with the deployed state

```
USAGE
  $ facetsctl release sync <apps> -p <value> -e <value>

ARGUMENTS
  <apps>: List of app names to sync (comma-separated | example: ... sync app1,app2,app3 -p ...)

FLAGS
  -e, --environment=<value>  (required) Environment name
  -p, --project=<value>      (required) Project name

DESCRIPTION
  Sync out-of-sync apps to match their desired state with the deployed state

EXAMPLES
  $ facetsctl release sync my-resource1,my-resource2 -p my-project -e my-environment
```

_See code: [src/commands/release/sync.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.5/src/commands/release/sync.ts)_

## `facetsctl release wait`

Wait for the sync status of the specified apps, and trigger sync if --sync is provided

```
USAGE
  $ facetsctl release wait <apps> -p <value> -e <value> [--sync]

ARGUMENTS
  <apps>: List of app names to wait for (comma-separated | example: ... sync app1,app2,app3 -p ...)

FLAGS
  -e, --environment=<value>  (required) Environment name
  -p, --project=<value>      (required) Project name
      --sync                 Trigger a sync if apps are out-of-sync

DESCRIPTION
  Wait for the sync status of the specified apps, and trigger sync if --sync is provided

EXAMPLES
  $ facetsctl release wait my-resource1,my-resource2 -p my-project -e my-environment 
  $ facetsctl release wait my-resource1,my-resource2 -p my-project -e my-environment --sync
```

_See code: [src/commands/release/wait.ts](https://github.com/facets-cloud/facetsctl/blob/v1.1.5/src/commands/release/wait.ts)_
