-
Notifications
You must be signed in to change notification settings - Fork 2
/
charmcraft.yaml
167 lines (155 loc) · 4.36 KB
/
charmcraft.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
name: sdcore-upf-k8s
summary: Charmed Operator for SD-Core's User Plane Function (UPF).
description: Charmed Operator for SD-Core's User Plane Function (UPF).
links:
website:
- https://charmhub.io/sdcore-upf-k8s
source:
- https://github.com/canonical/sdcore-upf-k8s-operator
issues:
- https://github.com/canonical/sdcore-upf-k8s-operator/issues
containers:
bessd:
resource: bessd-image
mounts:
- storage: config
location: /etc/bess/conf/
- storage: shared-app
location: /pod-share/
pfcp-agent:
resource: pfcp-agent-image
mounts:
- storage: config
location: /tmp/conf/
- storage: shared-app
location: /pod-share/
resources:
bessd-image:
type: oci-image
description: OCI image for 5G upf bessd
upstream-source: ghcr.io/canonical/sdcore-upf-bess:1.5.0
pfcp-agent-image:
type: oci-image
description: OCI image for 5G upf pfcp-agent
upstream-source: ghcr.io/canonical/sdcore-upf-pfcpiface:1.5.0
storage:
config:
type: filesystem
minimum-size: 1M
shared-app:
type: filesystem
minimum-size: 1M
provides:
fiveg_n3:
interface: fiveg_n3
fiveg_n4:
interface: fiveg_n4
metrics-endpoint:
interface: prometheus_scrape
requires:
logging:
interface: loki_push_api
assumes:
- juju >= 3.4
- k8s-api
type: charm
base: [email protected]
build-base: [email protected]
platforms:
amd64:
parts:
charm:
source: .
plugin: charm
charm-requirements:
- requirements.txt
build-packages:
- libffi-dev
- libssl-dev
- pkg-config
build-snaps:
- astral-uv
- rustup
override-build: |
rustup default stable
uv export --frozen --no-dev -o requirements.txt
craftctl default
config:
options:
cni-type:
type: string
default: bridge
description: |
Multus CNI plugin to use for the interfaces.
Allowed values are `bridge`, `host-device`, `macvlan`, `vfioveth`.
upf-mode:
type: string
default: af_packet
description: |
Either `af_packet` (default) or `dpdk`.
dnn:
type: string
default: internet
description: Data Network Name (DNN)
gnb-subnet:
type: string
default: 192.168.251.0/24
description: gNodeB subnet.
access-interface:
type: string
description: Interface on the host to use for the Access Network.
access-interface-mac-address:
type: string
description: |
MAC address of the UPF's Access interface.
Required only if `upf-mode` is `dpdk`.
access-ip:
type: string
default: 192.168.252.3/24
description: IP address used by the UPF's Access interface.
access-gateway-ip:
type: string
default: 192.168.252.1
description: Gateway IP address to the Access Network.
access-interface-mtu-size:
type: int
description: |
MTU for the access interface (1200 <= MTU <= 65535) in bytes.
If not specified, Multus will use its default value (typically 1500).
core-interface:
type: string
description: Interface on the host to use for the Core Network.
core-interface-mac-address:
type: string
description: |
MAC address of the UPF's Core interface.
Required only if `upf-mode` is `dpdk`.
core-ip:
type: string
default: 192.168.250.3/24
description: IP address used by the UPF's Core interface.
core-gateway-ip:
type: string
default: 192.168.250.1
description: Gateway IP address to the Core Network.
core-interface-mtu-size:
type: int
description: |
MTU for the core interface (1200 <= MTU <= 65535) in bytes.
If not specified, Multus will use its default value (typically 1500).
external-upf-hostname:
type: string
description: |
Externally accessible FQDN for the UPF.
If not provided, it will default to the LoadBalancer Service hostname.
If that is not available, it will default to the internal
Kubernetes FQDN of the service.
enable-hw-checksum:
type: boolean
default: true
description: |
When enabled, hardware checksum will be used on the network interfaces.
log-level:
type: string
default: info
description: Log level for the UPF. One of `debug`, `info`, `warn`, `error`, `fatal`, `panic`.