Skip to content

Commit f0815fe

Browse files
authored
[#2265] Add support for Infinispan 16.x.y servers
* update correct Jgroups version for operand 14.0 and 15.1 * add configuration test for 16.x.y * remove default value for Jgroups * add templates for cache-container.xml and server.xml
1 parent 8f2904b commit f0815fe

14 files changed

+195
-27
lines changed

config/manager/manager.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ spec:
167167
{
168168
"upstream-version": "15.2.2",
169169
"image": "quay.io/infinispan/server:15.2.2.Final"
170+
},
171+
{
172+
"upstream-version": "16.0.0",
173+
"image": "quay.io/infinispan-test/server:main"
170174
}
171175
]
172176
- name: POD_NAME

pkg/infinispan/configuration/server/configuration.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ func GenerateZeroCapacity(operand version.Operand, spec *Spec) (string, error) {
127127
}
128128

129129
func supportedMajorVersion(v uint64) bool {
130-
return v >= 14 && v <= 15
130+
return v >= 14 && v <= 16
131131
}
132132

133133
func mapVersionsToSpec(operand version.Operand, spec *Spec) {
@@ -136,12 +136,13 @@ func mapVersionsToSpec(operand version.Operand, spec *Spec) {
136136
spec.Infinispan.Version = v
137137
spec.JGroups.Version.Major = 5
138138

139-
if v.Major <= 14 {
139+
switch {
140+
case v.Major == 14:
141+
spec.JGroups.Version.Minor = 2
142+
case v.Major == 15 && v.Minor <= 1:
143+
spec.JGroups.Version.Minor = 3
144+
case (v.Major == 15 && v.Minor >= 2) || v.Major >= 16:
140145
spec.JGroups.Version.Minor = 4
141-
} else if v.Minor <= 1 {
142-
spec.JGroups.Version.Minor = 5
143-
} else {
144-
spec.JGroups.Version.Minor = 6
145146
}
146147
}
147148

pkg/infinispan/configuration/server/configuration_test.go

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,27 @@ import (
99
"github.com/stretchr/testify/assert"
1010
)
1111

12-
func TestGenerateAndGenerateZeroCapacity(t *testing.T) {
12+
func TestGenerateAndGenerateZeroCapacity_v16(t *testing.T) {
13+
baseCfg_expected := readFile("testdata/base-16-cfg.xml")
14+
adminCfg_expected := readFile("testdata/admin-16-cfg.xml")
15+
zeroCfg_expected := readFile("testdata/zero-16-cfg.xml")
16+
17+
ispn := Infinispan{Authorization: &Authorization{Enabled: true}}
18+
spec := Spec{Infinispan: ispn}
19+
vers := semver.Version{Major: 16, Minor: 0, Patch: 0}
20+
ope := version.Operand{UpstreamVersion: &vers}
21+
22+
baseCfg, adminCfg, err := Generate(ope, &spec)
23+
assert.Equal(t, baseCfg_expected, baseCfg)
24+
assert.Equal(t, adminCfg_expected, adminCfg)
25+
assert.Nil(t, err)
26+
27+
zeroCfg, err := GenerateZeroCapacity(ope, &spec)
28+
assert.Equal(t, zeroCfg_expected, zeroCfg)
29+
assert.Nil(t, err)
30+
}
31+
32+
func TestGenerateAndGenerateZeroCapacity_v15(t *testing.T) {
1333
baseCfg_expected := readFile("testdata/base-15-cfg.xml")
1434
adminCfg_expected := readFile("testdata/admin-15-cfg.xml")
1535
zeroCfg_expected := readFile("testdata/zero-15-cfg.xml")

pkg/infinispan/configuration/server/testdata/admin-14-cfg.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
xmlns="urn:infinispan:config:14.0"
66
xmlns:server="urn:infinispan:server:14.0">
77

8-
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.4.xsd">
8+
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.2.xsd">
99

1010
<stack name="image-tcp" extends="kubernetes">
1111
<!-- overwrite diagnostics-->

pkg/infinispan/configuration/server/testdata/admin-15-cfg.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
xmlns="urn:infinispan:config:15.1"
66
xmlns:server="urn:infinispan:server:15.1">
77

8-
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.5.xsd">
8+
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.3.xsd">
99

1010
<stack name="image-tcp" extends="kubernetes">
1111
<!-- overwrite diagnostics-->
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<infinispan
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="urn:infinispan:config:16.0 https://infinispan.org/schemas/infinispan-config-16.0.xsd
4+
urn:infinispan:server:16.0 https://infinispan.org/schemas/infinispan-server-16.0.xsd"
5+
xmlns="urn:infinispan:config:16.0"
6+
xmlns:server="urn:infinispan:server:16.0">
7+
8+
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.4.xsd">
9+
10+
<stack name="image-tcp" extends="kubernetes">
11+
<!-- overwrite diagnostics-->
12+
<TCP diag.enabled="${jgroups.diag.enabled:false}" stack.combine="COMBINE" />
13+
<!-- overwrite DNS query (only required attribute) -->
14+
<dns.DNS_PING dns_query="${jgroups.dns.query:-ping..svc.cluster.local}" stack.combine="COMBINE" />
15+
</stack>
16+
</jgroups>
17+
<server xmlns="urn:infinispan:server:16.0">
18+
<interfaces>
19+
<interface name="public">
20+
<inet-address value="${infinispan.bind.address}"/>
21+
</interface>
22+
</interfaces>
23+
<socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
24+
<socket-binding name="admin" port="11223"/>
25+
</socket-bindings>
26+
<security>
27+
<security-realms>
28+
<security-realm name="admin">
29+
<properties-realm groups-attribute="Roles">
30+
<user-properties path="cli-admin-users.properties" relative-to="infinispan.server.config.path"/>
31+
<group-properties path="cli-admin-groups.properties" relative-to="infinispan.server.config.path"/>
32+
</properties-realm>
33+
</security-realm>
34+
</security-realms>
35+
</security>
36+
<endpoints security-realm="admin">
37+
<endpoint socket-binding="admin" security-realm="admin">
38+
<rest-connector>
39+
<authentication mechanisms="BASIC DIGEST"/>
40+
</rest-connector>
41+
<hotrod-connector />
42+
</endpoint>
43+
</endpoints>
44+
</server>
45+
</infinispan>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<infinispan
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="urn:infinispan:config:16.0 https://infinispan.org/schemas/infinispan-config-16.0.xsd
4+
urn:infinispan:server:16.0 https://infinispan.org/schemas/infinispan-server-16.0.xsd"
5+
xmlns="urn:infinispan:config:16.0"
6+
xmlns:server="urn:infinispan:server:16.0">
7+
8+
<cache-container name="default" statistics="true">
9+
<global-state unclean-shutdown-action="IGNORE" />
10+
11+
<security>
12+
<authorization group-only-mapping="false">
13+
<cluster-role-mapper />
14+
</authorization>
15+
</security>
16+
17+
<transport cluster="${infinispan.cluster.name:}" node-name="${infinispan.node.name:}" stack="image-tcp"/>
18+
</cache-container>
19+
<server xmlns="urn:infinispan:server:16.0">
20+
<socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
21+
<socket-binding name="default" port="${infinispan.bind.port:11222}"/>
22+
</socket-bindings>
23+
<security>
24+
<security-realms>
25+
<security-realm name="default">
26+
<server-identities>
27+
</server-identities>
28+
</security-realm>
29+
</security-realms>
30+
</security>
31+
<endpoints>
32+
<endpoint socket-binding="default" security-realm="default" require-ssl-client-auth="true" />
33+
</endpoints>
34+
</server>
35+
</infinispan>

pkg/infinispan/configuration/server/testdata/zero-14-cfg.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
xmlns="urn:infinispan:config:14.0"
66
xmlns:server="urn:infinispan:server:14.0">
77

8-
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.4.xsd">
8+
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.2.xsd">
99

1010
<stack name="image-tcp" extends="kubernetes">
1111
<!-- overwrite diagnostics-->

pkg/infinispan/configuration/server/testdata/zero-15-cfg.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
xmlns="urn:infinispan:config:15.1"
66
xmlns:server="urn:infinispan:server:15.1">
77

8-
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.5.xsd">
8+
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.3.xsd">
99

1010
<stack name="image-tcp" extends="kubernetes">
1111
<!-- overwrite diagnostics-->
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<infinispan
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="urn:infinispan:config:16.0 https://infinispan.org/schemas/infinispan-config-16.0.xsd
4+
urn:infinispan:server:16.0 https://infinispan.org/schemas/infinispan-server-16.0.xsd"
5+
xmlns="urn:infinispan:config:16.0"
6+
xmlns:server="urn:infinispan:server:16.0">
7+
8+
<jgroups xsi:schemaLocation="http://www.jgroups.org/schema/jgroups-5.4.xsd">
9+
10+
<stack name="image-tcp" extends="kubernetes">
11+
<!-- overwrite diagnostics-->
12+
<TCP diag.enabled="${jgroups.diag.enabled:false}" stack.combine="COMBINE" />
13+
<!-- overwrite DNS query (only required attribute) -->
14+
<dns.DNS_PING dns_query="${jgroups.dns.query:-ping..svc.cluster.local}" stack.combine="COMBINE" />
15+
</stack>
16+
</jgroups>
17+
<cache-container name="default" statistics="true" zero-capacity-node="true">
18+
19+
<security>
20+
<authorization group-only-mapping="false">
21+
<cluster-role-mapper />
22+
</authorization>
23+
</security>
24+
25+
<transport cluster="${infinispan.cluster.name:}" node-name="${infinispan.node.name:}" stack="image-tcp"
26+
/>
27+
</cache-container>
28+
<server xmlns="urn:infinispan:server:16.0">
29+
<interfaces>
30+
<interface name="public">
31+
<inet-address value="${infinispan.bind.address}"/>
32+
</interface>
33+
</interfaces>
34+
<socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
35+
<socket-binding name="admin" port="11223"/>
36+
</socket-bindings>
37+
<security>
38+
<security-realms>
39+
<security-realm name="admin">
40+
<properties-realm groups-attribute="Roles">
41+
<user-properties path="cli-admin-users.properties" relative-to="infinispan.server.config.path"/>
42+
<group-properties path="cli-admin-groups.properties" relative-to="infinispan.server.config.path"/>
43+
</properties-realm>
44+
</security-realm>
45+
46+
</security-realms>
47+
</security>
48+
<endpoints>
49+
<endpoint socket-binding="admin" security-realm="admin">
50+
<rest-connector>
51+
<authentication mechanisms="BASIC DIGEST"/>
52+
</rest-connector>
53+
<hotrod-connector />
54+
</endpoint>
55+
</endpoints>
56+
</server>
57+
</infinispan>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<cache-container name="default" statistics="true">
2+
<global-state unclean-shutdown-action="IGNORE" />
3+
{{template "authorization.xml" . }}
4+
<transport cluster="${infinispan.cluster.name:{{ .ClusterName }}}" node-name="${infinispan.node.name:}" stack="image-tcp"
5+
{{- if .Transport.TLS.Enabled }}server:security-realm="transport"{{ end -}}/>
6+
</cache-container>
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<server xmlns="urn:infinispan:server:{{ .Infinispan.Version.Major }}.{{ .Infinispan.Version.Minor }}">
2+
<socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
3+
<socket-binding name="default" port="${infinispan.bind.port:11222}"/>
4+
</socket-bindings>
5+
{{template "security.xml" . }}
6+
<endpoints>
7+
<endpoint socket-binding="default" security-realm="default" {{ if ne .Endpoints.ClientCert "None" }}require-ssl-client-auth="true"{{ end }} />
8+
</endpoints>
9+
</server>
10+
</infinispan>
Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,4 @@
11
{{template "header.xml" . }}
22

3-
<cache-container name="default" statistics="true">
4-
<global-state unclean-shutdown-action="IGNORE" />
5-
{{template "authorization.xml" . }}
6-
<transport cluster="${infinispan.cluster.name:{{ .ClusterName }}}" node-name="${infinispan.node.name:}" stack="image-tcp"
7-
{{- if .Transport.TLS.Enabled }}server:security-realm="transport"{{ end -}}/>
8-
</cache-container>
9-
<server xmlns="urn:infinispan:server:{{ .Infinispan.Version.Major }}.{{ .Infinispan.Version.Minor }}">
10-
<socket-bindings default-interface="public" port-offset="${infinispan.socket.binding.port-offset:0}">
11-
<socket-binding name="default" port="${infinispan.bind.port:11222}"/>
12-
</socket-bindings>
13-
{{template "security.xml" . }}
14-
<endpoints>
15-
<endpoint socket-binding="default" security-realm="default" {{ if ne .Endpoints.ClientCert "None" }}require-ssl-client-auth="true"{{ end }} />
16-
</endpoints>
17-
</server>
18-
</infinispan>
3+
{{template "cache-container.xml" . }}
4+
{{template "server.xml" . }}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{{template "header.xml" . }}
2+
3+
{{template "cache-container.xml" . }}
4+
{{template "server.xml" . }}

0 commit comments

Comments
 (0)