|
1 | 1 | package gatewayapi |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "fmt" |
4 | 5 | "time" |
5 | 6 |
|
| 7 | + "github.com/onsi/ginkgo" |
6 | 8 | . "github.com/onsi/ginkgo/v2" |
7 | 9 | . "github.com/onsi/gomega" |
| 10 | + "github.com/stretchr/testify/assert" |
8 | 11 |
|
9 | 12 | "github.com/api7/api7-ingress-controller/test/e2e/scaffold" |
10 | 13 | ) |
11 | 14 |
|
| 15 | +func createSecret(s *scaffold.Scaffold, secretName string) { |
| 16 | + cert := `-----BEGIN CERTIFICATE----- |
| 17 | +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 |
| 46 | +3IrSc5hO |
| 47 | +-----END CERTIFICATE-----` |
| 48 | + key := `-----BEGIN RSA PRIVATE KEY----- |
| 49 | +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 |
| 98 | +-----END RSA PRIVATE KEY-----` |
| 99 | + // create kube secret |
| 100 | + err := s.NewKubeTlsSecret(secretName, cert, key) |
| 101 | + assert.Nil(ginkgo.GinkgoT(), err, "create secret error") |
| 102 | + // create ApisixTls resource |
| 103 | + // tlsName := "tls-name" |
| 104 | + // host := "api7.com" |
| 105 | +} |
| 106 | + |
12 | 107 | var _ = Describe("Test Gateway", func() { |
13 | 108 | s := scaffold.NewScaffold(&scaffold.Options{ |
14 | 109 | ControllerName: "gateway.api7.io/api7-ingress-controller", |
@@ -84,4 +179,51 @@ spec: |
84 | 179 | Expect(gwyaml).To(ContainSubstring(`status: Unknown`), "checking Gateway condition status") |
85 | 180 | }) |
86 | 181 | }) |
| 182 | + |
| 183 | + Context("Gateway SSL", func() { |
| 184 | + ginkgo.It("Check if SSL resource was created", func() { |
| 185 | + secretName := "test-apisix-tls" |
| 186 | + host := "api6.com" |
| 187 | + createSecret(s, secretName) |
| 188 | + var defaultGatewayClass = ` |
| 189 | + apiVersion: gateway.networking.k8s.io/v1 |
| 190 | + kind: GatewayClass |
| 191 | + metadata: |
| 192 | + name: api7 |
| 193 | + spec: |
| 194 | + controllerName: "gateway.api7.io/api7-ingress-controller" |
| 195 | + ` |
| 196 | + |
| 197 | + var defaultGateway = fmt.Sprintf(` |
| 198 | + apiVersion: gateway.networking.k8s.io/v1 |
| 199 | + kind: Gateway |
| 200 | + metadata: |
| 201 | + name: api7ee |
| 202 | + spec: |
| 203 | + gatewayClassName: api7 |
| 204 | + listeners: |
| 205 | + - name: http1 |
| 206 | + protocol: HTTP |
| 207 | + port: 80 |
| 208 | + hostname: %s |
| 209 | + tls: |
| 210 | + certificateRefs: |
| 211 | + - kind: Secret |
| 212 | + group: "" |
| 213 | + name: %s |
| 214 | + `, host, secretName) |
| 215 | + By("create GatewayClass") |
| 216 | + err := s.CreateResourceFromStringWithNamespace(defaultGatewayClass, "") |
| 217 | + Expect(err).NotTo(HaveOccurred(), "creating GatewayClass") |
| 218 | + time.Sleep(5 * time.Second) |
| 219 | + |
| 220 | + By("create Gateway") |
| 221 | + err = s.CreateResourceFromString(defaultGateway) |
| 222 | + Expect(err).NotTo(HaveOccurred(), "creating Gateway") |
| 223 | + time.Sleep(5 * time.Second) |
| 224 | + tls, err := s.ListApisixSsl() |
| 225 | + assert.Nil(ginkgo.GinkgoT(), err, "list tls error") |
| 226 | + assert.Len(ginkgo.GinkgoT(), tls, 1, "tls number not expect") |
| 227 | + }) |
| 228 | + }) |
87 | 229 | }) |
0 commit comments