Skip to content

Commit 91ea99a

Browse files
authored
Docs refresh for Calamari.md (#2588)
1 parent d86ce17 commit 91ea99a

File tree

1 file changed

+8
-20
lines changed

1 file changed

+8
-20
lines changed

src/pages/docs/octopus-rest-api/calamari.md

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,12 @@
11
---
22
layout: src/layouts/Default.astro
33
pubDate: 2023-01-01
4-
modDate: 2023-01-01
4+
modDate: 2024-12-11
55
title: Calamari
6-
description: Calamari is the command-line tool invoked by Tentacle during a deployment. It knows how to extract and install NuGet packages, run the Deploy.ps1 etc. conventions, modify configuration files, and all the other things that happen during an deployment.
76
navOrder: 70
7+
description: Calamari is the command-line tool invoked by Tentacle during a deployment. It knows how to deploy to Kubernetes, extract and install packages, run scripts and conventions, modify configuration files, and all the other things that happen during a deployment.
88
---
99

10-
Prior to **Octopus 3.0**, Tentacles were responsible for performing deployment steps. Tentacles were *smart*. They knew how to transform configuration files, modify IIS, and much, much more.
11-
12-
:::figure
13-
![](/docs/octopus-rest-api/images/3278198.png)
14-
:::
15-
16-
There were a few cons to this architecture:
17-
18-
- To add or modify features, a new version of the Tentacle service was required. And some folks have a *lot* of Tentacles.
19-
- Deploying to a target which shouldn't require a Tentacle (e.g. an Azure WebSite), required that the deployment go via a Tentacle.
20-
- This wouldn't support SSH targets. All SSH can do is to run commands and move files. All the logic and conventions for .NET configuration transforms, etc. would need to be pushed from the Octopus Server.
21-
22-
And so the *communication channel* (Tentacle) was decoupled from the *deployment engine*: Calamari was born.
23-
2410
Calamari is an [open-source](https://github.com/OctopusDeploy/Calamari), console-application. It supports many commands, which are responsible for performing deployment-steps. For example:
2511

2612
```bash
@@ -29,13 +15,15 @@ Calamari deploy-package --package MyPackage.nupkg --variables Variables.json
2915

3016
Calamari has commands to support:
3117

18+
- Deploying to Kubernetes via Helm/Kustomize/Yaml.
3219
- Deploying NuGet packages.
3320
- Running scripts (PowerShell, ScriptCS, Bash, F#).
34-
- Deploying packages to Azure targets (Cloud Services, WebApps).
21+
- Deploying packages to Cloud services (WebApps, Functions etc.).
3522
- Various other deployment related activities.
3623

37-
Each deployment, if it is not already present, the latest version of the Calamari executable is pushed to wherever it needs to be. This may be to:
24+
On each deployment, if it is not already present, the latest version of the Calamari executable is pushed to wherever it needs to be. This may be to:
3825

26+
- A Kubernetes Agent
3927
- A Tentacle.
4028
- Via SSH to a Linux machine.
4129
- A network-drive for Offline-Package-Drop targets.
@@ -48,7 +36,7 @@ Deployments now proceed as follows:
4836
3. The deployment target invokes Calamari to perform each deployment step.
4937
4. Calamari performs the deployment step.
5038

51-
Now that Calamari is open-source, it might help answer any questions you had around what happens during a deployment. For example, did you ever wonder what order conventions run in when deploying a package?
39+
Since Calamari is open-source, you can see the actions that are performed during a deployment. For example, did you ever wonder what order conventions run in when deploying a package?
5240

5341
```csharp
5442
var conventions = new List<IConvention>
@@ -78,4 +66,4 @@ var conventions = new List<IConvention>
7866
};
7967
```
8068

81-
Calamari is published under the Apache license, and we'll continue to work on it in the open. One of the benefits of this architecture is that you can [fork the project](https://github.com/OctopusDeploy/Calamari), make your own changes, and then tell your **Octopus 3.0** server to use your own Calamari package.
69+
Calamari is published under the Apache license, you can find the source code [here](https://github.com/OctopusDeploy/Calamari).

0 commit comments

Comments
 (0)