Skip to content

Commit 250d03b

Browse files
authored
Merge pull request #235 from bytedance/release-0.8
Release 0.8.1
2 parents 7e05551 + b709b5d commit 250d03b

File tree

67 files changed

+515
-911
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

67 files changed

+515
-911
lines changed

Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ CLASSIFIER_IMAGE_DEV ?= $(REPO_DEV)/$(CLASSIFIER_IMAGE_NAME):$(CLASSIFIER_IMAGE_
2828

2929
CHART_APP_VERSION := $(VARMOR_IMAGE_TAG)
3030
CHART_APP_VERSION_DEV := $(GIT_VERSION)
31-
CHART_VERSION := $(shell echo $(CHART_APP_VERSION)| sed 's/^v//')
32-
CHART_VERSION_DEV := $(shell echo $(CHART_APP_VERSION_DEV)| sed 's/^v//')
31+
CHART_VERSION := $(shell echo $(CHART_APP_VERSION) | sed 's/^v//')
32+
CHART_VERSION_DEV := $(shell echo $(CHART_APP_VERSION_DEV) | sed 's/^v//')
3333

3434
KERNEL_RELEASE = $(shell uname -r)
3535
APPARMOR_ABI_NAME = kernel-$(KERNEL_RELEASE)
@@ -109,8 +109,8 @@ generate-apparmor-abi: ## Generate the AppArmor feature ABI of development envir
109109
cp config/apparmor.d/abi/$(APPARMOR_ABI_NAME) config/apparmor.d/abi/varmor
110110

111111
.PHONY: manifests
112-
manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
113-
@echo "[+] Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects"
112+
manifests: controller-gen ## Generate CustomResourceDefinition objects.
113+
@echo "[+] Generate CustomResourceDefinition objects"
114114
$(CONTROLLER_GEN) crd paths="./apis/varmor/..." output:crd:artifacts:config=config/crds
115115
cp config/crds/* manifests/varmor/templates/crds/
116116

README.ja.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ vArmorポリシーは、**AlwaysAllow、RuntimeDefault、EnhanceProtect、Behavi
5858

5959
### ステップ1. チャートの取得
6060
```
61-
helm pull oci://elkeid-ap-southeast-1.cr.volces.com/varmor/varmor --version 0.8.0
61+
helm pull oci://elkeid-ap-southeast-1.cr.volces.com/varmor/varmor --version 0.8.1
6262
```
6363

6464
### ステップ2. インストール
6565
*中国地域内では、ドメイン`elkeid-cn-beijing.cr.volces.com`を使用できます。*
6666
```
67-
helm install varmor varmor-0.8.0.tgz \
67+
helm install varmor varmor-0.8.1.tgz \
6868
--namespace varmor --create-namespace \
6969
--set image.registry="elkeid-ap-southeast-1.cr.volces.com"
7070
```

cmd/classifier/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.10-slim-buster
1+
FROM python:3.10-slim-bookworm
22

33
WORKDIR /home/varmor
44

cmd/classifier/boot.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#!/bin/sh
22
# source venv/bin/activate
33

4-
gunicorn -b :5000 -w 2 wsgi:app
4+
gunicorn -b :${CLASSIFIER_SERVICE_PORT:-5000} -w 2 wsgi:app

cmd/varmor/Dockerfile

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
## Building AppArmor & libseccomp
2-
FROM debian:bookworm as apparmor-libseccomp-builder
2+
FROM debian:bookworm AS apparmor-libseccomp-builder
33

44
LABEL maintainer="vArmor authors"
55

@@ -28,7 +28,7 @@ RUN ./autogen.sh && ./configure --prefix=/usr && \
2828

2929

3030
## Building vArmor-ebpf
31-
FROM ghcr.io/cilium/ebpf-builder:1726131844 as vArmor-ebpf-builder
31+
FROM ghcr.io/cilium/ebpf-builder:1726131844 AS varmor-ebpf-builder
3232

3333
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-17 90
3434
RUN update-alternatives --install /usr/bin/llvm-strip llvm-strip /usr/bin/llvm-strip-17 90
@@ -38,7 +38,7 @@ RUN make build-ebpf
3838

3939

4040
## Building vArmor
41-
FROM golang:1.23-bookworm as vArmor-builder
41+
FROM golang:1.23-bookworm AS varmor-builder
4242

4343
LABEL maintainer="vArmor authors"
4444

@@ -53,10 +53,10 @@ COPY --from=apparmor-libseccomp-builder /usr/lib/libseccomp.* /usr/lib/
5353
COPY --from=apparmor-libseccomp-builder /usr/include/seccomp* /usr/include/
5454
COPY --from=apparmor-libseccomp-builder /usr/lib/libapparmor.* /usr/lib/
5555
COPY --from=apparmor-libseccomp-builder /usr/include/aalogparse /usr/include/aalogparse
56-
COPY --from=vArmor-ebpf-builder /varmor/vArmor-ebpf/pkg/processtracer/bpf_bpfel.go /varmor/pkg/processtracer
57-
COPY --from=vArmor-ebpf-builder /varmor/vArmor-ebpf/pkg/processtracer/bpf_bpfel.o /varmor/pkg/processtracer
58-
COPY --from=vArmor-ebpf-builder /varmor/vArmor-ebpf/pkg/bpfenforcer/bpf_bpfel.go /varmor/pkg/lsm/bpfenforcer
59-
COPY --from=vArmor-ebpf-builder /varmor/vArmor-ebpf/pkg/bpfenforcer/bpf_bpfel.o /varmor/pkg/lsm/bpfenforcer
56+
COPY --from=varmor-ebpf-builder /varmor/vArmor-ebpf/pkg/processtracer/bpf_bpfel.go /varmor/pkg/processtracer
57+
COPY --from=varmor-ebpf-builder /varmor/vArmor-ebpf/pkg/processtracer/bpf_bpfel.o /varmor/pkg/processtracer
58+
COPY --from=varmor-ebpf-builder /varmor/vArmor-ebpf/pkg/bpfenforcer/bpf_bpfel.go /varmor/pkg/lsm/bpfenforcer
59+
COPY --from=varmor-ebpf-builder /varmor/vArmor-ebpf/pkg/bpfenforcer/bpf_bpfel.o /varmor/pkg/lsm/bpfenforcer
6060

6161
RUN apt-get update
6262
RUN apt-get install -y libseccomp2 libseccomp-dev
@@ -82,9 +82,9 @@ LABEL maintainer="vArmor authors"
8282
ARG TARGETARCH
8383

8484
# Copy the varmor executable to the image
85-
COPY --from=vArmor-builder /output/ /varmor
85+
COPY --from=varmor-builder /output/ /varmor
8686
# Copy the AppArmor feature ABI file which used during development and testing the VarmorPolicy to the image
87-
COPY --from=vArmor-builder /varmor/config/apparmor.d/abi/varmor /varmor/apparmor.d/abi/varmor
87+
COPY --from=varmor-builder /varmor/config/apparmor.d/abi/varmor /varmor/apparmor.d/abi/varmor
8888
# Copy the AppArmor executables and tools to the image
8989
COPY --from=apparmor-libseccomp-builder /etc/apparmor/parser.conf /etc/apparmor/parser.conf
9090
COPY --from=apparmor-libseccomp-builder /etc/apparmor.d /varmor/apparmor.d

cmd/varmor/main.go

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ func main() {
212212
}
213213

214214
// init a metrics
215-
metricsModule := metrics.NewMetricsModule(logger.WithName("METRICS"), enableMetrics, 10)
215+
metricsModule := metrics.NewMetricsModule(logger.WithName("METRICS"), enableMetrics, 10, config.MetricsServicePort)
216216

217217
if agent {
218218
logger.WithName("SETUP").Info("vArmor agent startup")
@@ -226,18 +226,25 @@ func main() {
226226
}
227227
}
228228

229-
agentCtrl, err := varmoragent.NewAgent(
229+
svcAddresses := make(map[string]string, 2)
230+
if inContainer {
231+
svcAddresses[config.StatusServiceName] = fmt.Sprintf("%s.%s:%d", config.StatusServiceName, config.Namespace, config.StatusServicePort)
232+
svcAddresses[config.ClassifierServiceName] = fmt.Sprintf("%s.%s:%d", config.ClassifierServiceName, config.Namespace, config.ClassifierServicePort)
233+
} else {
234+
svcAddresses[config.StatusServiceName] = fmt.Sprintf("%s:%d", managerIP, config.StatusServicePort)
235+
svcAddresses[config.ClassifierServiceName] = fmt.Sprintf("%s:%d", managerIP, config.ClassifierServicePort)
236+
}
237+
238+
agent, err := varmoragent.NewAgent(
230239
varmorClient.CrdV1beta1(),
231240
varmorFactory.Crd().V1beta1().ArmorProfiles(),
232241
enableBehaviorModeling,
233242
enableBpfEnforcer,
234243
unloadAllAaProfiles,
235244
removeAllSeccompProfiles,
245+
svcAddresses,
236246
debugFlag,
237247
inContainer,
238-
managerIP,
239-
config.StatusServicePort,
240-
config.ClassifierServicePort,
241248
auditLogPaths,
242249
stopCh,
243250
metricsModule,
@@ -248,20 +255,20 @@ func main() {
248255
os.Exit(1)
249256
}
250257
varmorFactory.Start(stopCh)
251-
go agentCtrl.Run(1, stopCh)
258+
go agent.Run(1, stopCh)
252259

253260
// Wait for the manager to be ready.
254261
logger.WithName("SETUP").Info("Waiting for the manager to be ready")
255-
varmorutils.WaitForManagerReady(inContainer, managerIP, config.StatusServicePort)
262+
agent.WaitForManagerReady()
256263

257264
// Set the agent to ready.
258-
varmorutils.SetAgentReady()
265+
agent.SetAgentReady()
259266

260267
logger.WithName("SETUP").Info("vArmor agent is online")
261268

262269
<-stopCh
263270

264-
agentCtrl.CleanUp()
271+
agent.CleanUp()
265272
logger.WithName("SETUP").Info("vArmor agent shutdown successful")
266273

267274
} else {
@@ -322,7 +329,7 @@ func main() {
322329
mwcFactory.Start(stopCh)
323330

324331
// Elect a leader to register the admission webhook configurations.
325-
registerWebhookConfigurations := func() {
332+
registerWebhookConfigurations := func(ctx context.Context) {
326333
// Only leader initializes the secrets of CA cert and TLS pair.
327334
certManager.InitTLSPemPair()
328335
// Only leader registers the MutatingWebhookConfiguration object.
@@ -333,12 +340,14 @@ func main() {
333340
}
334341
}
335342
webhookRegisterLeader, err := leaderelection.New(
343+
logger.WithName("webhook-register/LeaderElection"),
336344
"webhook-register",
337345
config.Namespace,
338346
kubeClient,
347+
config.Name,
348+
leaderelection.DefaultRetryPeriod,
339349
registerWebhookConfigurations,
340-
nil,
341-
logger.WithName("webhook-register/LeaderElection"))
350+
nil)
342351
if err != nil {
343352
logger.WithName("SETUP").Error(err, "failed to elect a leader")
344353
os.Exit(1)
@@ -462,7 +471,7 @@ func main() {
462471
varmorFactory.Start(stopCh)
463472

464473
// Wrap all controllers that need leaderelection, start them once by the leader.
465-
leaderRun := func() {
474+
leaderRun := func(ctx context.Context) {
466475
if enablePodServiceEgressControl && enableBpfEnforcer {
467476
// Only the leader watches the Pod and Service IP changes.
468477
go ipWatcher.Run(1, stopCh)
@@ -485,7 +494,7 @@ func main() {
485494
if err != nil {
486495
return err
487496
}
488-
return varmorutils.TagLeaderPod(kubeClient.CoreV1().Pods(config.Namespace))
497+
return varmorutils.TagLeaderPod(kubeClient.CoreV1().Pods(config.Namespace), config.Name)
489498
}
490499
err := retry.OnError(retry.DefaultRetry, retriable, tag)
491500
if err != nil {
@@ -502,7 +511,15 @@ func main() {
502511
signal.RequestShutdown()
503512
}
504513

505-
leader, err := leaderelection.New("varmor-manager", config.Namespace, kubeClient, leaderRun, leaderStop, logger.WithName("varmor-manager/LeaderElection"))
514+
leader, err := leaderelection.New(
515+
logger.WithName("varmor-manager/LeaderElection"),
516+
"varmor-manager",
517+
config.Namespace,
518+
kubeClient,
519+
config.Name,
520+
leaderelection.DefaultRetryPeriod,
521+
leaderRun,
522+
leaderStop)
506523
if err != nil {
507524
logger.WithName("SETUP").Error(err, "failed to elect a leader")
508525
os.Exit(1)

config/k8s-resource/namespace.yaml

Lines changed: 0 additions & 7 deletions
This file was deleted.

config/k8s-resource/policies/agent-networkpolicy.yaml

Lines changed: 0 additions & 20 deletions
This file was deleted.

config/k8s-resource/policies/manager-networkpolicy.yaml

Lines changed: 0 additions & 20 deletions
This file was deleted.

config/k8s-resource/rbac/agent-clusterrole.yaml

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)