Skip to content

Commit 151be59

Browse files
committed
Port server status reader fixes
1 parent d067c83 commit 151be59

File tree

10 files changed

+32
-35
lines changed

10 files changed

+32
-35
lines changed

docs-source/content/security/rbac.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ to a `Role` or `ClusterRole` granting permission to the operator.
112112
| RoleBinding | Mapped to Role | Resource Access | Notes |
113113
| --- | --- | --- | --- |
114114
| `weblogic-operator-rolebinding` | `weblogic-operator-role` | **Edit**: secrets, configmaps, events | The RoleBinding is created in the namespace `weblogic-operator-ns` [^1] |
115-
| `weblogic-operator-rolebinding-namespace` | Operator Cluster Role `namespace` | **Read**: secrets, pods/log | The RoleBinding is created in the namespace `domain1-ns` [^2] |
115+
| `weblogic-operator-rolebinding-namespace` | Operator Cluster Role `namespace` | **Read**: secrets, pods/log, pods/exec | The RoleBinding is created in the namespace `domain1-ns` [^2] |
116116
| | | **Edit**: configmaps, events, pods, services, jobs.batch | |
117117
| | | **Create**: pods/exec | |
118118

docs/charts/index.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,83 +2,83 @@ apiVersion: v1
22
entries:
33
weblogic-operator:
44
- apiVersion: v1
5-
created: "2020-05-18T20:31:11.167108-04:00"
5+
created: "2020-06-01T11:06:47.01222-04:00"
66
description: Helm chart for configuring the WebLogic operator.
77
digest: 5f4cd8f4f3282b52b5e90a1169f26986e8272671845053606ade9c855fb04151
88
name: weblogic-operator
99
urls:
1010
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-3.0.0-rc1.tgz
1111
version: 3.0.0-rc1
1212
- apiVersion: v1
13-
created: "2020-05-18T20:31:11.165473-04:00"
13+
created: "2020-06-01T11:06:47.009924-04:00"
1414
description: Helm chart for configuring the WebLogic operator.
15-
digest: 9102d05ccd9311f77179aa91f0f8ea28ac0255d0905361cc5ae7a6d7b84cdb27
15+
digest: 90cce593163ff508ccfe1e00046d2bd7f0ea28b2403812e427f3d6fed473771e
1616
name: weblogic-operator
1717
urls:
1818
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.6.0.tgz
1919
version: 2.6.0
2020
- apiVersion: v1
21-
created: "2020-05-18T20:31:11.161746-04:00"
21+
created: "2020-06-01T11:06:46.996245-04:00"
2222
description: Helm chart for configuring the WebLogic operator.
2323
digest: fe41421b7dc45dc8a3b2888d3a626a37f5d3c8e1fa292fb6699deedc5e1db33d
2424
name: weblogic-operator
2525
urls:
2626
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.5.0.tgz
2727
version: 2.5.0
2828
- apiVersion: v1
29-
created: "2020-05-18T20:31:11.160293-04:00"
29+
created: "2020-06-01T11:06:46.984232-04:00"
3030
description: Helm chart for configuring the WebLogic operator.
3131
digest: b36bd32083f67453a62d089a2c09ce38e6655d88ac8a7b38691230c55c40e672
3232
name: weblogic-operator
3333
urls:
3434
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.4.0.tgz
3535
version: 2.4.0
3636
- apiVersion: v1
37-
created: "2020-05-18T20:31:11.158404-04:00"
37+
created: "2020-06-01T11:06:46.957724-04:00"
3838
description: Helm chart for configuring the WebLogic operator.
3939
digest: a3eafe4c2c6ff49384e56421201e59a3737d651af8d5b605b87a19eb1f6f1dc3
4040
name: weblogic-operator
4141
urls:
4242
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.3.1.tgz
4343
version: 2.3.1
4444
- apiVersion: v1
45-
created: "2020-05-18T20:31:11.153312-04:00"
45+
created: "2020-06-01T11:06:46.91045-04:00"
4646
description: Helm chart for configuring the WebLogic operator.
4747
digest: cbc6caaa6eb28e3c7e906ede14b2ae511a0b35fc12a8e3ab629155b09993e8b2
4848
name: weblogic-operator
4949
urls:
5050
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.3.0.tgz
5151
version: 2.3.0
5252
- apiVersion: v1
53-
created: "2020-05-18T20:31:11.150352-04:00"
53+
created: "2020-06-01T11:06:46.888509-04:00"
5454
description: Helm chart for configuring the WebLogic operator.
5555
digest: 23d5a1c554fa8211cc1e86b7ade09460917cb2069e68fb4bfdddafc8db44fdcd
5656
name: weblogic-operator
5757
urls:
5858
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.2.1.tgz
5959
version: 2.2.1
6060
- apiVersion: v1
61-
created: "2020-05-18T20:31:11.148716-04:00"
61+
created: "2020-06-01T11:06:46.885035-04:00"
6262
description: Helm chart for configuring the WebLogic operator.
6363
digest: bba303686cb55d84fe8c0d693a2436e7e686b028085b56e012f6381699a3911f
6464
name: weblogic-operator
6565
urls:
6666
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.2.0.tgz
6767
version: 2.2.0
6868
- apiVersion: v1
69-
created: "2020-05-18T20:31:11.147022-04:00"
69+
created: "2020-06-01T11:06:46.879707-04:00"
7070
description: Helm chart for configuring the WebLogic operator.
7171
digest: 391e23c0969ada5f0cd2a088ddc6f11f237f57521801ed3925db2149a8437a0d
7272
name: weblogic-operator
7373
urls:
7474
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.1.tgz
7575
version: "2.1"
7676
- apiVersion: v1
77-
created: "2020-05-18T20:31:11.145318-04:00"
77+
created: "2020-06-01T11:06:46.872459-04:00"
7878
description: Helm chart for configuring the WebLogic operator.
7979
digest: 298acda78ab73db6b7ba6f2752311bfa40c65874e03fb196b70976192211c1a5
8080
name: weblogic-operator
8181
urls:
8282
- https://oracle.github.io/weblogic-kubernetes-operator/charts/weblogic-operator-2.0.1.tgz
8383
version: 2.0.1
84-
generated: "2020-05-18T20:31:11.139713-04:00"
84+
generated: "2020-06-01T11:06:46.867346-04:00"
2 Bytes
Binary file not shown.

kubernetes/charts/weblogic-operator/templates/_operator-clusterrole-domain-admin.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ rules:
3131
verbs: ["get", "list"]
3232
- apiGroups: [""]
3333
resources: ["pods/exec"]
34-
verbs: ["create"]
34+
verbs: ["get", "create"]
3535
- apiGroups: ["weblogic.oracle"]
3636
resources: ["domains"]
3737
verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"]

kubernetes/charts/weblogic-operator/templates/_operator-clusterrole-namespace.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ rules:
3131
verbs: ["get", "list"]
3232
- apiGroups: [""]
3333
resources: ["pods/exec"]
34-
verbs: ["create"]
34+
verbs: ["get", "create"]
3535
- apiGroups: ["batch"]
3636
resources: ["jobs"]
3737
verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"]

kubernetes/charts/weblogic-operator/templates/_operator-clusterrole-operator-admin.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ rules:
3131
verbs: ["get", "list"]
3232
- apiGroups: [""]
3333
resources: ["pods/exec"]
34-
verbs: ["create"]
34+
verbs: ["get", "create"]
3535
{{- end }}

kubernetes/src/test/java/oracle/kubernetes/operator/create/CreateOperatorGeneratedFilesTestBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,7 @@ private V1ClusterRole getExpectedWeblogicOperatorNamespaceRole() {
611611
newPolicyRule()
612612
.addApiGroupsItem("")
613613
.resources(singletonList("pods/exec"))
614-
.verbs(singletonList("create")))
614+
.verbs(asList("get", "create")))
615615
.addRulesItem(
616616
newPolicyRule()
617617
.addApiGroupsItem("batch")

operator/src/main/java/oracle/kubernetes/operator/ServerStatusReader.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package oracle.kubernetes.operator;
55

66
import java.io.IOException;
7-
import java.io.InputStream;
87
import java.io.InputStreamReader;
98
import java.io.Reader;
109
import java.util.Collection;
@@ -15,7 +14,6 @@
1514
import java.util.function.Function;
1615
import java.util.stream.Collectors;
1716

18-
import com.google.common.base.Charsets;
1917
import com.google.common.io.CharStreams;
2018
import io.kubernetes.client.openapi.ApiClient;
2119
import io.kubernetes.client.openapi.ApiException;
@@ -160,11 +158,8 @@ public NextAction apply(Packet packet) {
160158
return doNext(packet);
161159
}
162160

163-
// Even though we don't need input data for this call, the API server is
164-
// returning 400 Bad Request any time we set these to false. There is likely some bug in the
165-
// client
166-
final boolean stdin = true;
167-
final boolean tty = true;
161+
final boolean stdin = false;
162+
final boolean tty = false;
168163

169164
return doSuspend(
170165
fiber -> {
@@ -178,20 +173,19 @@ public NextAction apply(Packet packet) {
178173
kubernetesExec.setTty(tty);
179174
proc = kubernetesExec.exec("/weblogic-operator/scripts/readState.sh");
180175

181-
InputStream in = proc.getInputStream();
176+
try (final Reader reader = new InputStreamReader(proc.getInputStream())) {
177+
state = CharStreams.toString(reader);
178+
}
179+
182180
if (proc.waitFor(timeoutSeconds, TimeUnit.SECONDS)) {
183181
int exitValue = proc.exitValue();
184182
LOGGER.fine("readState exit: " + exitValue + ", readState for " + pod.getMetadata().getName());
185-
if (exitValue == 0) {
186-
try (final Reader reader = new InputStreamReader(in, Charsets.UTF_8)) {
187-
state = CharStreams.toString(reader);
188-
}
189-
} else if (exitValue == 1 || exitValue == 2) {
183+
if (exitValue == 1 || exitValue == 2) {
190184
state =
191185
PodHelper.isDeleting(pod)
192186
? WebLogicConstants.SHUTDOWN_STATE
193187
: WebLogicConstants.STARTING_STATE;
194-
} else {
188+
} else if (exitValue != 0) {
195189
state = WebLogicConstants.UNKNOWN_STATE;
196190
}
197191
}

operator/src/test/java/oracle/kubernetes/operator/helpers/HealthCheckHelperTest.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public class HealthCheckHelperTest {
6969
private static final List<String> CLUSTER_READ_UPDATE_RESOURCES =
7070
Arrays.asList("domains//weblogic.oracle", "domains/status/weblogic.oracle");
7171

72-
private static final List<String> CREATE_ONLY_RESOURCES =
72+
private static final List<String> CREATE_AND_GET_RESOURCES =
7373
Arrays.asList("pods/exec", "tokenreviews//authentication.k8s.io",
7474
"selfsubjectrulesreviews//authorization.k8s.io");
7575

@@ -89,6 +89,9 @@ public class HealthCheckHelperTest {
8989
private static final List<Operation> READ_UPDATE_OPERATIONS =
9090
Arrays.asList(get, list, watch, update, patch);
9191

92+
private static final List<Operation> CREATE_GET_OPERATIONS =
93+
Arrays.asList(create, get);
94+
9295
private static final String POD_LOGS = "pods/log";
9396
private static final KubernetesVersion RULES_REVIEW_VERSION = new KubernetesVersion(1, 8);
9497

@@ -189,7 +192,7 @@ private void addNamespaceRules(List<V1ResourceRule> rules) {
189192
rules.add(createRule(CRUD_RESOURCES, CRUD_OPERATIONS));
190193
rules.add(createRule(READ_WATCH_RESOURCES, READ_WATCH_OPERATIONS));
191194
rules.add(createRule(singletonList(POD_LOGS), READ_ONLY_OPERATIONS));
192-
rules.add(createRule(CREATE_ONLY_RESOURCES, singletonList(create)));
195+
rules.add(createRule(CREATE_AND_GET_RESOURCES, CREATE_GET_OPERATIONS));
193196
}
194197

195198
private void addClusterRules(List<V1ResourceRule> rules) {

src/scripts/operator.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ cp /operator/logstash.conf /logs/logstash.conf
6464
# assumption is that we have mounted a volume on /logs which is also visible to
6565
# the logstash container/pod.
6666

67-
# Container memory optimizaton flags
68-
HEAP="-XX:+UnlockExperimentalVMOptions -XX:MaxRAMFraction=1 -XshowSettings:vm"
67+
# Container memory optimization flags
68+
HEAP="-XshowSettings:vm"
6969

7070
# Start operator
7171
java $HEAP $MOCKING_WLS $DEBUG $LOGGING -jar /operator/weblogic-kubernetes-operator.jar &

0 commit comments

Comments
 (0)