Skip to content

Commit a63a9fc

Browse files
committed
fix: r
Signed-off-by: ashing <[email protected]>
1 parent 15c62e5 commit a63a9fc

File tree

7 files changed

+51
-30
lines changed

7 files changed

+51
-30
lines changed

.dockerignore

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

Dockerfile.dev

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,23 +21,12 @@ RUN apt update \
2121
&& mv ./node-binary/linux-${TARGETARCH} /bin/adc \
2222
&& rm -rf /app
2323

24-
FROM golang:1.22 AS builder
25-
WORKDIR /workspace
26-
COPY go.* ./
27-
28-
RUN if [ "$ENABLE_PROXY" = "true" ] ; then go env -w GOPROXY=https://goproxy.cn,direct ; fi \
29-
&& go mod download
30-
31-
COPY . .
32-
33-
RUN --mount=type=cache,target=/root/.cache/go-build make build && mv bin/api7-ingress-controller /bin && rm -rf /workspace
34-
3524
FROM debian:bullseye-slim
3625
WORKDIR /app
3726

38-
COPY --from=builder /bin/api7-ingress-controller .
3927
COPY --from=node_builder /bin/adc /bin/adc
40-
COPY config/samples/config.yaml ./conf/config.yaml
28+
COPY ./bin/api7-ingress-controller .
29+
COPY ./config/samples/config.yaml ./conf/config.yaml
4130

4231
ENTRYPOINT ["/app/api7-ingress-controller"]
4332
CMD ["-c", "/app/conf/config.yaml"]

Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ kind-load-images: pull-infra-images
127127
@kind load docker-image $(IMG) --name $(KIND_NAME)
128128
@kind load docker-image jmalloc/echo-server:latest --name $(KIND_NAME)
129129

130+
.PHONY: kind-load-ingress-image
131+
kind-load-ingress-image:
132+
@kind load docker-image $(IMG) --name $(KIND_NAME)
133+
130134
.PHONY: pull-infra-images
131135
pull-infra-images:
132136
@docker pull hkccr.ccs.tencentyun.com/api7-dev/api7-ee-3-gateway:dev
@@ -146,6 +150,8 @@ kind-load-image:
146150
build: manifests generate fmt vet ## Build manager binary.
147151
CGO_ENABLED=0 go build -o bin/api7-ingress-controller -ldflags $(GO_LDFLAGS) cmd/main.go
148152

153+
linux-build:
154+
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o bin/api7-ingress-controller -ldflags $(GO_LDFLAGS) cmd/main.go
149155

150156
.PHONY: build-image
151157
build-image: docker-build

internal/controller/gateway_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ func (r *GatewayReconciler) SetupWithManager(mgr ctrl.Manager) error {
5454
}
5555
return ctrl.NewControllerManagedBy(mgr).
5656
For(&gatewayv1.Gateway{}).
57+
WithEventFilter(predicate.GenerationChangedPredicate{}).
5758
Watches(
5859
&gatewayv1.GatewayClass{},
5960
handler.EnqueueRequestsFromMapFunc(r.listGatewayForGatewayClass),
@@ -136,6 +137,7 @@ func (r *GatewayReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
136137

137138
ListenerStatuses, err := getListenerStatus(ctx, r.Client, gateway)
138139
if err != nil {
140+
log.Error(err, "failed to get listener status", "gateway", gateway.GetName())
139141
return ctrl.Result{}, err
140142
}
141143

@@ -151,6 +153,7 @@ func (r *GatewayReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
151153

152154
return ctrl.Result{}, r.Status().Update(ctx, gateway)
153155
}
156+
154157
return ctrl.Result{}, nil
155158
}
156159

internal/controller/httproute_controller.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
ctrl "sigs.k8s.io/controller-runtime"
1515
"sigs.k8s.io/controller-runtime/pkg/client"
1616
"sigs.k8s.io/controller-runtime/pkg/handler"
17+
"sigs.k8s.io/controller-runtime/pkg/predicate"
1718
"sigs.k8s.io/controller-runtime/pkg/reconcile"
1819
gatewayv1 "sigs.k8s.io/gateway-api/apis/v1"
1920

@@ -42,6 +43,7 @@ func (r *HTTPRouteReconciler) SetupWithManager(mgr ctrl.Manager) error {
4243
}
4344
return ctrl.NewControllerManagedBy(mgr).
4445
For(&gatewayv1.HTTPRoute{}).
46+
WithEventFilter(predicate.GenerationChangedPredicate{}).
4547
Watches(&discoveryv1.EndpointSlice{},
4648
handler.EnqueueRequestsFromMapFunc(r.listHTTPRoutesByServiceBef),
4749
).
@@ -96,6 +98,7 @@ func (r *HTTPRouteReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
9698
}
9799

98100
tctx := provider.NewDefaultTranslateContext()
101+
99102
if err := r.processHTTPRoute(tctx, hr); err != nil {
100103
acceptStatus.status = false
101104
acceptStatus.msg = err.Error()
@@ -113,8 +116,6 @@ func (r *HTTPRouteReconciler) Reconcile(ctx context.Context, req ctrl.Request) (
113116
acceptStatus.msg = err.Error()
114117
}
115118

116-
// process the HTTPRoute
117-
118119
// TODO: diff the old and new status
119120
hr.Status.Parents = make([]gatewayv1.RouteParentStatus, 0, len(gateways))
120121
for _, gateway := range gateways {

internal/provider/adc/adc.go

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,26 @@ func (d *adcClient) Update(ctx context.Context, tctx *provider.TranslateContext,
4646
var result *translator.TranslateResult
4747
var err error
4848

49+
var task Task = Task{
50+
Name: obj.GetName(),
51+
Labels: label.GenLabel(obj),
52+
}
53+
var extraArgs []string
54+
4955
switch obj := obj.(type) {
5056
case *gatewayv1.HTTPRoute:
57+
extraArgs = append(extraArgs, "--include-resource-type", "service")
58+
log.Debugw("translating http route", zap.Any("http route", obj))
5159
result, err = d.translator.TranslateHTTPRoute(tctx, obj.DeepCopy())
5260
case *gatewayv1.Gateway:
61+
extraArgs = append(extraArgs, "--include-resource-type", "global_rule")
62+
log.Debugw("translating gateway", zap.Any("gateway", obj))
5363
result, err = d.translator.TranslateGateway(tctx, obj.DeepCopy())
5464
}
5565
if err != nil {
5666
return err
5767
}
68+
log.Debugw("translated result", zap.Any("result", result))
5869
if result == nil {
5970
return nil
6071
}
@@ -63,22 +74,32 @@ func (d *adcClient) Update(ctx context.Context, tctx *provider.TranslateContext,
6374
Services: result.Services,
6475
GlobalRules: result.GlobalRules,
6576
}
77+
log.Debugw("adc resources", zap.Any("resources", resources))
6678

67-
return d.sync(Task{
68-
Name: obj.GetName(),
69-
Resources: resources,
70-
Labels: label.GenLabel(obj),
71-
})
79+
task.Resources = resources
80+
81+
return d.sync(task, extraArgs...)
7282
}
7383

7484
func (d *adcClient) Delete(ctx context.Context, obj client.Object) error {
75-
return d.sync(Task{
85+
task := Task{
7686
Name: obj.GetName(),
7787
Labels: label.GenLabel(obj),
78-
})
88+
}
89+
90+
var extraArgs []string
91+
92+
switch obj.(type) {
93+
case *gatewayv1.HTTPRoute:
94+
extraArgs = append(extraArgs, "--include-resource-type", "service")
95+
case *gatewayv1.Gateway:
96+
extraArgs = append(extraArgs, "--include-resource-type", "global_rule")
97+
}
98+
99+
return d.sync(task, extraArgs...)
79100
}
80101

81-
func (d *adcClient) sync(task Task) error {
102+
func (d *adcClient) sync(task Task, extraArgs ...string) error {
82103
log.Debugw("syncing task", zap.Any("task", task))
83104

84105
yaml, err := yaml.Marshal(task.Resources)
@@ -103,11 +124,13 @@ func (d *adcClient) sync(task Task) error {
103124
args := []string{
104125
"sync",
105126
"-f", tmpFile.Name(),
106-
"--include-resource-type", "service",
107-
"--include-resource-type", "global_rule",
108127
"--tls-skip-verify",
109128
}
110129

130+
if len(extraArgs) > 0 {
131+
args = append(args, extraArgs...)
132+
}
133+
111134
for k, v := range task.Labels {
112135
args = append(args, "--label-selector", k+"="+v)
113136
}
@@ -132,5 +155,8 @@ func (d *adcClient) sync(task Task) error {
132155
)
133156
return err
134157
}
158+
159+
log.Debugw("adc sync success", zap.String("taskname", task.Name))
160+
135161
return nil
136162
}

test/e2e/gatewayapi/gatewayproxy.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/api7/api7-ingress-controller/test/e2e/scaffold"
1111
)
1212

13-
var _ = FDescribe("Test GatewayProxy", func() {
13+
var _ = Describe("Test GatewayProxy", func() {
1414
s := scaffold.NewDefaultScaffold()
1515

1616
var defaultGatewayClass = `
@@ -157,7 +157,6 @@ spec:
157157
AfterEach(func() {
158158
By("Clean up resources")
159159
_ = s.DeleteResourceFromString(gatewayProxyWithEnabledPlugin)
160-
_ = s.DeleteResourceFromString(gatewayProxyWithDisabledPlugin)
161160
_ = s.DeleteResourceFromString(fmt.Sprintf(httpRouteForTest, "api7"))
162161
_ = s.DeleteResourceFromString(fmt.Sprintf(gatewayWithProxy, gatewayClassName))
163162
})

0 commit comments

Comments
 (0)