Skip to content

Commit 328d2d8

Browse files
authored
feat: add cirrina chart (#1)
1 parent 148d164 commit 328d2d8

File tree

7 files changed

+169
-2
lines changed

7 files changed

+169
-2
lines changed

.github/workflows/build.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Build
2+
on:
3+
push:
4+
branches: [ "main" ]
5+
pull_request:
6+
branches: [ "main" ]
7+
jobs:
8+
Build:
9+
if: github.repository == 'CollaborativeStateMachines/Cirrina-Helm'
10+
name: Build
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Check out the repo
14+
uses: actions/checkout@v4
15+
16+
- name: Perform commit linting
17+
uses: wagoid/commitlint-github-action@v6

.github/workflows/publish.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Release Charts
2+
on:
3+
push:
4+
branches:
5+
- main
6+
jobs:
7+
Release:
8+
if: github.repository == 'CollaborativeStateMachines/Cirrina-Helm'
9+
name: Release
10+
permissions:
11+
contents: write
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
with:
17+
fetch-depth: 0
18+
19+
- name: Configure Git
20+
run: |
21+
git config user.name "$GITHUB_ACTOR"
22+
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
23+
24+
- name: Run chart-releaser
25+
uses: helm/chart-releaser-action@v1.7.0
26+
env:
27+
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

README.md

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,53 @@
1-
# Cirrina-Helm
2-
Cirrina helm charts.
1+
# Cirrina Helm Charts
2+
3+
## Cirrina
4+
5+
The [Cirrina Helm chart](charts/cirrina) deploys Cirrina.
6+
7+
### Values
8+
9+
For values, see [values.yaml](charts/cirrina/values.yaml).
10+
11+
An example `values.yaml` file is as follows:
12+
13+
```yaml
14+
cirrina:
15+
image:
16+
tag: unstable
17+
18+
replicaCount: 2
19+
20+
appPath: "http://example.com/main.pkl"
21+
serviceBindingsPath: "http://example.com/services.pkl"
22+
instantiate: "stateMachineOne,stateMachineTwo"
23+
24+
natsEventUrl: "nats://nats:4222/"
25+
natsContextUrl: "nats://nats:4222/"
26+
27+
extraEnvVars:
28+
- name: OTEL_METRIC_EXPORT_INTERVAL
29+
value: "1000"
30+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
31+
value: "http://otel-collector:4317/"
32+
```
33+
34+
### Deployment
35+
36+
To deploy Cirrina, use `kubectl`:
37+
38+
```console
39+
helm template prod charts/cirrina \
40+
--namespace default \
41+
-f values.yaml \
42+
| kubectl apply -f -
43+
```
44+
45+
Or use another orchestration tool, such
46+
as [Open Cluster Management](https://open-cluster-management.io/):
47+
48+
```console
49+
helm template prod charts/cirrina \
50+
--namespace default \
51+
-f values.yaml \
52+
| clusteradm --context="kind-hub" create work prod-cirrina --clusters cluster1 -f -
53+
```

charts/cirrina/Chart.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: v2
2+
name: cirrina
3+
description: Helm chart for deploying Cirrina
4+
type: application
5+
version: 0.1.0
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{{- define "cirrina.name" -}}
2+
cirrina
3+
{{- end -}}
4+
5+
{{- define "cirrina.fullname" -}}
6+
{{ .Release.Name }}-cirrina
7+
{{- end -}}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: {{ include "cirrina.fullname" . }}
5+
namespace: {{ .Release.Namespace }}
6+
labels:
7+
app.kubernetes.io/name: {{ include "cirrina.name" . }}
8+
app.kubernetes.io/instance: {{ .Release.Name }}
9+
spec:
10+
replicas: {{ .Values.cirrina.replicaCount }}
11+
selector:
12+
matchLabels:
13+
app.kubernetes.io/name: {{ include "cirrina.name" . }}
14+
app.kubernetes.io/instance: {{ .Release.Name }}
15+
template:
16+
metadata:
17+
labels:
18+
app.kubernetes.io/name: {{ include "cirrina.name" . }}
19+
app.kubernetes.io/instance: {{ .Release.Name }}
20+
spec:
21+
containers:
22+
- name: cirrina
23+
image: "{{ .Values.cirrina.image.repository }}:{{ .Values.cirrina.image.tag }}"
24+
imagePullPolicy: IfNotPresent
25+
env:
26+
- name: APP_PATH
27+
value: {{ .Values.cirrina.appPath | quote }}
28+
- name: SERVICE_BINDINGS_PATH
29+
value: {{ .Values.cirrina.serviceBindingsPath | quote }}
30+
- name: INSTANTIATE
31+
value: {{ .Values.cirrina.instantiate | quote }}
32+
- name: NATS_EVENT_URL
33+
value: {{ .Values.cirrina.natsEventUrl | quote }}
34+
- name: NATS_CONTEXT_URL
35+
value: {{ .Values.cirrina.natsContextUrl | quote }}
36+
{{- if .Values.cirrina.extraEnvVars }}
37+
{{- toYaml .Values.cirrina.extraEnvVars | nindent 12 }}
38+
{{- end }}

charts/cirrina/values.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
cirrina:
2+
# Docker image configuration
3+
image:
4+
repository: marlonetheredgeuibk/cirrina
5+
tag: latest
6+
replicaCount: 1
7+
8+
# Application path must be a URL
9+
appPath: ""
10+
11+
# Service implementation bindings path must be a URL
12+
serviceBindingsPath: ""
13+
14+
# Instantiation of state machines must be valid state machine names
15+
instantiate: ""
16+
17+
# NATS server URLs
18+
natsEventUrl: ""
19+
natsContextUrl: ""
20+
21+
# Extra environment variables for the container
22+
extraEnvVars: [ ]

0 commit comments

Comments
 (0)