Skip to content

Commit 1c1352a

Browse files
committed
update based on review comments
1 parent d025f48 commit 1c1352a

File tree

4 files changed

+37
-20
lines changed

4 files changed

+37
-20
lines changed

operator/src/main/java/oracle/kubernetes/operator/helpers/PodHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ protected Map<String, String> getPodAnnotations() {
132132
}
133133

134134
private String getInternalOperatorCertFile(TuningParameters tuningParameters) {
135-
return RestServer.getInstance().getInternalCertificate();
135+
return RestServer.getInstance().getInternalCertificateAsBase64PEM();
136136
}
137137
}
138138

operator/src/main/java/oracle/kubernetes/operator/rest/RestServer.java

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import javax.net.ssl.SSLContext;
2020
import oracle.kubernetes.operator.logging.LoggingFacade;
2121
import oracle.kubernetes.operator.logging.LoggingFactory;
22+
import oracle.kubernetes.operator.logging.MessageKeys;
2223
import oracle.kubernetes.operator.work.Container;
2324
import oracle.kubernetes.operator.work.ContainerResolver;
2425
import org.apache.commons.codec.binary.Base64;
@@ -66,18 +67,27 @@ public class RestServer {
6667
}; // ONLY support TLSv1.2 (by default, we would get TLSv1 and TLSv1.1 too)
6768

6869
public static synchronized void create(RestConfig restConfig) {
69-
if (INSTANCE == null) {
70-
INSTANCE = new RestServer(restConfig);
70+
LOGGER.entering();
71+
try {
72+
if (INSTANCE == null) {
73+
INSTANCE = new RestServer(restConfig);
74+
return;
75+
}
76+
77+
throw new IllegalStateException();
78+
} finally {
79+
LOGGER.exiting();
7180
}
72-
// throw new IllegalStateException();
7381
}
7482

7583
public static synchronized RestServer getInstance() {
7684
return INSTANCE;
7785
}
7886

7987
public static void destroy() {
88+
LOGGER.entering();
8089
INSTANCE = null;
90+
LOGGER.exiting();
8191
}
8292

8393
/**
@@ -185,16 +195,27 @@ public void stop() {
185195
LOGGER.exiting();
186196
}
187197

188-
public String getInternalCertificate() {
198+
/**
199+
* Gets the internal https port's certificate as a base64 encoded PEM.
200+
*
201+
* @return base64 encoded PEM containing the certificate, or null if unable to read the
202+
* certificate data.
203+
*/
204+
public String getInternalCertificateAsBase64PEM() {
205+
LOGGER.entering();
206+
String internalCert = null;
189207
try {
190-
return readCertFromDataOrFile(
191-
this.config.getOperatorInternalCertificateData(),
192-
this.config.getOperatorInternalCertificateFile());
208+
internalCert =
209+
Base64.encodeBase64String(
210+
readFromDataOrFile(
211+
this.config.getOperatorInternalCertificateData(),
212+
this.config.getOperatorInternalCertificateFile()));
193213
} catch (IOException e) {
194-
LOGGER.warning("Unable to read internal certificate data", e);
214+
LOGGER.warning(MessageKeys.EXCEPTION, e);
195215
}
196216

197-
return null;
217+
LOGGER.exiting(internalCert);
218+
return internalCert;
198219
}
199220

200221
private HttpServer createExternalHttpsServer(Container container) throws Exception {
@@ -350,13 +371,6 @@ private KeyManager[] createKeyManagers(
350371
return result;
351372
}
352373

353-
private static String readCertFromDataOrFile(String data, String file) throws IOException {
354-
if (data != null && data.length() > 0) {
355-
return data;
356-
}
357-
return new String(Files.readAllBytes(new File(file).toPath()));
358-
}
359-
360374
private static byte[] readFromDataOrFile(String data, String file) throws IOException {
361375
if (data != null && data.length() > 0) {
362376
return Base64.decodeBase64(data);

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@
4242

4343
@SuppressWarnings("SameParameterValue")
4444
public class AdminPodHelperTest extends PodHelperTestBase {
45-
static final String INTERNAL_OPERATOR_CERT_FILE_PARAM = "internalOperatorCert";
4645
private static final String INTERNAL_OPERATOR_CERT_ENV_NAME = "INTERNAL_OPERATOR_CERT";
47-
private static final String CERTFILE = "certfile";
4846

4947
public AdminPodHelperTest() {
5048
super(ADMIN_SERVER, ADMIN_PORT);
@@ -210,7 +208,6 @@ public void whenAdminPodCreated_containerHasStartServerCommand() {
210208

211209
@Test
212210
public void whenAdminPodCreated_hasOperatorCertEnvVariable() {
213-
// putTuningParameter(INTERNAL_OPERATOR_CERT_FILE_PARAM, CERTFILE);
214211
assertThat(
215212
getCreatedPodSpecContainer().getEnv(),
216213
hasEnvVar(INTERNAL_OPERATOR_CERT_ENV_NAME, RestTest.OP_CERT_DATA));

operator/src/test/java/oracle/kubernetes/operator/rest/RestTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,12 @@ public void testMissingAccessToken() {
286286
verifyNotAuthenticated(r);
287287
}
288288

289+
@Test
290+
public void testGetInternalCertificateAsBase64PEM() {
291+
String internalCertData = RestServer.getInstance().getInternalCertificateAsBase64PEM();
292+
assertEquals(internalCertData, RestTest.OP_CERT_DATA);
293+
}
294+
289295
private VersionModel createLatestVersion() {
290296
return new VersionModel(V1, true, "active");
291297
}

0 commit comments

Comments
 (0)