Managing Services

Forge provides several commands for inspecting and managing the kubernetes resources of services deployed using forge. (Please note that these commands depend on the metadata feature added in forge 0.4. No harm will come from running these commands if that metadata is not present, the commands simply will not see or act upon those resources. If you wish to add this metadata to resources deployed with an older version of forge, simply redeploy with version 0.4 or later.)

Inspecting deployed services

Forge automatically tags all kubernetes resources it creates with metadata in the form of labels and annotations. You can use the forge list command to provide a summary of every service in your cluster that forge has deployed.

The forge list output will, for each deployed profile of a service, display the URL for the source repo, the descriptor and version from which the source was deployed, as well as all the kubernetes resources and a summary of their status:

<service>[<profile>]: <url> | <descriptor> | <version>
  <kind> <namespace>.<name>:
    <status>
  ...

For example:

$ forge list
hello-forge[dev]: https://gitub.com/datawire/hello-forge.git | service.yaml | 3d2acb34c0d1658f7c17a2ea008cea83c7fe09ee.git
  deployment default.hello-forge-dev:
    Deployment has minimum availability.
  service default.hello-forge-dev:
    READY(192.168.225.2:80, 192.168.225.3:80, 192.168.225.4:80)

Deleting deployed services

You can use the forge delete command to remove kubernetes resources that have been deployed by forge. Use the forge delete <service> <profile> form to remove just the resources associated with a single profile, e.g.:

$ forge delete hello-forge dev

Or if you want to remove all the profiles for a given service, use forge delete <service>, e.g.:

$ forge delete hello-forge

You can also remove all kubernetes resources deployed by forge with the forge delete --all flag, e.g.:

$ forge delete --all # please use this carefully!

No variants of the forge delete command will have any impact on kubernetes resources that were not deployed by forge.

Moving and/or renaming resources

You can use the --prune option to ask forge deploy to clean up old resources when you make changes to your k8s manifests. For example, if you rename or remove resources from your manifests, then forge deploy --prune will pass along the --prune option to kubectl apply, along with appropriate filters to limit the scope of the prune to the current service and profile, thereby causing all the old resources to be cleaned up, e.g.:

$ forge deploy --prune

Please note that this functionality depends on the service name (specified in forge's service.yaml file) remaining the same as this is how forge resources are labeled. If you wish to rename the service, you can simply use a regular forge deploy and then do a forge delete on the old service name.

Still have questions? Ask in our Gitter chatroom or file an issue on GitHub.

results matching ""

    No results matching ""