SecretApiImpl.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package nju.seec.SEECdemo.service.api;
  2. import io.kubernetes.client.apis.AppsV1Api;
  3. import io.kubernetes.client.apis.CoreV1Api;
  4. import nju.seec.SEECdemo.logic.api.k8s.SecretApi;
  5. import org.junit.Test;
  6. import org.junit.runner.RunWith;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.boot.test.context.SpringBootTest;
  9. import org.springframework.test.context.junit4.SpringRunner;
  10. @RunWith(SpringRunner.class)
  11. @SpringBootTest
  12. public class SecretApiImpl {
  13. @Autowired
  14. private AppsV1Api appsV1Api;
  15. @Autowired
  16. private CoreV1Api coreV1Api;
  17. @Autowired
  18. private SecretApi secretApi;
  19. @Test
  20. public void testCreateSecret() {
  21. //Secret默认创建的Type为Opaque,base64编码格式的Secret,用来储存密码、密钥等。
  22. // V1Secret v1Secret = new V1Secret();
  23. // v1Secret.setApiVersion("v1");
  24. // Map<String, byte[]> secretMap = new HashMap<>();
  25. // String dockerConfigJson =
  26. // "{\"auths\":{\"10.1.1.243:18082\":{\"username\":\"admin\",\"password\":\"admin123\",\"auth\":\"admin:admin123\"}}}";
  27. // secretMap.put(".dockerconfigjson", dockerConfigJson.getBytes());
  28. // V1ObjectMeta meta = new V1ObjectMeta();
  29. // meta.setName("my-secret4");
  30. // meta.setNamespace("mjj-test");
  31. // v1Secret.setData(secretMap);
  32. // v1Secret.setKind("Secret");
  33. // v1Secret.setMetadata(meta);
  34. // v1Secret.setType("123");
  35. //
  36. // v1Secret.setType("kubernetes.io/dockerconfigjson");
  37. //
  38. // try {
  39. // V1Secret returnSecret = coreV1Api.createNamespacedSecret("mjj-test", v1Secret, "OK");
  40. // Map<String, byte[]> dataMap = returnSecret.getData();
  41. // for (Map.Entry<String, byte[]> entry : dataMap.entrySet()) {
  42. // System.out.println(entry.getKey());
  43. // System.out.println(new String(entry.getValue()));
  44. // }
  45. // System.out.println(returnSecret.getType());
  46. // } catch (ApiException e) {
  47. // //如果已经存在相同命名的Secret会抛出异常
  48. // System.out.println(e.getResponseBody());
  49. // }
  50. // String namespace = "mjj-test";
  51. // try {
  52. // V1SecretList v1SecretList = coreV1Api.listNamespacedSecret(namespace, "OK", "", "",false, "", 200, "", 10, false);
  53. // List<V1Secret> secretList = v1SecretList.getItems();
  54. // for (V1Secret secret : secretList) {
  55. //
  56. // Map<String, byte[]> data = secret.getData();
  57. // for (Map.Entry<String, byte[]> entry : data.entrySet()) {
  58. // System.out.println(entry.getKey());
  59. // System.out.println(new String(entry.getValue()));
  60. // }
  61. // }
  62. // } catch (ApiException e) {
  63. // System.out.println(e.getResponseBody());
  64. // }
  65. //test createGenericSecret()
  66. /* String namespace = "mjj-test";
  67. String name = "secret";
  68. Map<String, byte[]> data = new HashMap<>();
  69. data.put("mysql", "123456".getBytes());
  70. secretApi.createGenericSecret(namespace, name, data);*/
  71. //test createPrivateRegistrySecret()
  72. /*String namespace = "mjj-test";
  73. String sever = "10.1.1.243:18082";
  74. String user = "admin";
  75. String password = "admin123";
  76. secretApi.createPrivateRegistrySecret(namespace, sever, user, password);*/
  77. //test getSecret()
  78. /*String namespace = "mjj-test";
  79. String name = "my-secret2";
  80. ApiResult apiResult = secretApi.getSecret(namespace, name);
  81. if (apiResult.getErrorCode() == 0) {
  82. V1Secret secret = (V1Secret) apiResult.getValue();
  83. Map<String, byte[]> map = secret.getData();
  84. for (Map.Entry<String, byte[]> entry : map.entrySet()) {
  85. System.out.println(entry.getKey());
  86. System.out.println(new String(entry.getValue()));
  87. }
  88. } else {
  89. System.out.println("获取失败");
  90. }*/
  91. //test delete a Secret
  92. /*String name = "my-secret2";
  93. String namespace = "mjj-test";*/
  94. /*V1DeleteOptions body = new V1DeleteOptions();
  95. try {
  96. coreV1Api.deleteNamespacedSecret(name, namespace, body, "", 5, false, "");
  97. } catch (ApiException e) {
  98. System.out.println(e.getResponseBody());
  99. }*/
  100. }
  101. }