kubeconfig.go 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. package fixtures
  2. // This file contains test fixtures to test various packages.
  3. // These are not meant to be workable kubeconfigs, but rather
  4. // are meant to test parsers and auth mechanism detection.
  5. // As a result, certificates are simply base-64 encoded versions
  6. // of "-----BEGIN CER", and all paths + key data are fake.
  7. const ClusterCAWithData string = `
  8. apiVersion: v1
  9. kind: Config
  10. clusters:
  11. - name: cluster-test
  12. cluster:
  13. server: https://10.10.10.10
  14. certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  15. contexts:
  16. - context:
  17. cluster: cluster-test
  18. user: test-admin
  19. name: context-test
  20. users:
  21. - name: test-admin
  22. user:
  23. client-certificate-data: LS0tLS1CRUdJTiBDRVJ=
  24. client-key-data: LS0tLS1CRUdJTiBDRVJ=
  25. current-context: context-test
  26. `
  27. const ClusterCAWithoutData string = `
  28. apiVersion: v1
  29. kind: Config
  30. clusters:
  31. - name: cluster-test
  32. cluster:
  33. server: https://10.10.10.10
  34. certificate-authority: /fake/path/to/ca.pem
  35. contexts:
  36. - context:
  37. cluster: cluster-test
  38. user: test-admin
  39. name: context-test
  40. users:
  41. - name: test-admin
  42. user:
  43. client-certificate-data: LS0tLS1CRUdJTiBDRVJ=
  44. client-key-data: LS0tLS1CRUdJTiBDRVJ=
  45. current-context: context-test
  46. `
  47. const ClusterLocalhost string = `
  48. apiVersion: v1
  49. kind: Config
  50. clusters:
  51. - name: cluster-test
  52. cluster:
  53. server: https://localhost:30000
  54. contexts:
  55. - context:
  56. cluster: cluster-test
  57. user: test-admin
  58. name: context-test
  59. users:
  60. - name: test-admin
  61. user:
  62. client-certificate-data: LS0tLS1CRUdJTiBDRVJ=
  63. client-key-data: LS0tLS1CRUdJTiBDRVJ=
  64. current-context: context-test
  65. `
  66. const X509WithData string = `
  67. apiVersion: v1
  68. kind: Config
  69. preferences: {}
  70. current-context: context-test
  71. clusters:
  72. - cluster:
  73. server: https://10.10.10.10
  74. name: cluster-test
  75. contexts:
  76. - context:
  77. cluster: cluster-test
  78. user: test-admin
  79. name: context-test
  80. users:
  81. - name: test-admin
  82. user:
  83. client-certificate-data: LS0tLS1CRUdJTiBDRVJ=
  84. client-key-data: LS0tLS1CRUdJTiBDRVJ=
  85. `
  86. const X509WithoutCertData string = `
  87. apiVersion: v1
  88. kind: Config
  89. preferences: {}
  90. current-context: context-test
  91. clusters:
  92. - cluster:
  93. server: https://10.10.10.10
  94. name: cluster-test
  95. contexts:
  96. - context:
  97. cluster: cluster-test
  98. user: test-admin
  99. name: context-test
  100. users:
  101. - name: test-admin
  102. user:
  103. client-certificate: /fake/path/to/cert.pem
  104. client-key-data: LS0tLS1CRUdJTiBDRVJ=
  105. `
  106. const X509WithoutKeyData string = `
  107. apiVersion: v1
  108. kind: Config
  109. preferences: {}
  110. current-context: context-test
  111. clusters:
  112. - cluster:
  113. server: https://10.10.10.10
  114. name: cluster-test
  115. contexts:
  116. - context:
  117. cluster: cluster-test
  118. user: test-admin
  119. name: context-test
  120. users:
  121. - name: test-admin
  122. user:
  123. client-certificate-data: LS0tLS1CRUdJTiBDRVJ=
  124. client-key: /fake/path/to/key.pem
  125. `
  126. const X509WithoutCertAndKeyData string = `
  127. apiVersion: v1
  128. kind: Config
  129. preferences: {}
  130. current-context: context-test
  131. clusters:
  132. - cluster:
  133. server: https://10.10.10.10
  134. name: cluster-test
  135. contexts:
  136. - context:
  137. cluster: cluster-test
  138. user: test-admin
  139. name: context-test
  140. users:
  141. - name: test-admin
  142. user:
  143. client-certificate: /fake/path/to/cert.pem
  144. client-key: /fake/path/to/key.pem
  145. `
  146. const BearerTokenWithData string = `
  147. apiVersion: v1
  148. kind: Config
  149. preferences: {}
  150. current-context: context-test
  151. clusters:
  152. - cluster:
  153. server: https://10.10.10.10
  154. name: cluster-test
  155. contexts:
  156. - context:
  157. cluster: cluster-test
  158. user: test-admin
  159. name: context-test
  160. users:
  161. - name: test-admin
  162. user:
  163. token: LS0tLS1CRUdJTiBDRVJ=
  164. `
  165. const BearerTokenWithoutData string = `
  166. apiVersion: v1
  167. kind: Config
  168. preferences: {}
  169. current-context: context-test
  170. clusters:
  171. - cluster:
  172. server: https://10.10.10.10
  173. name: cluster-test
  174. contexts:
  175. - context:
  176. cluster: cluster-test
  177. user: test-admin
  178. name: context-test
  179. users:
  180. - name: test-admin
  181. user:
  182. tokenFile: /path/to/token/file.txt
  183. `
  184. const GCPPlugin string = `
  185. apiVersion: v1
  186. kind: Config
  187. clusters:
  188. - name: cluster-test
  189. cluster:
  190. server: https://10.10.10.10
  191. certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  192. users:
  193. - name: test-admin
  194. user:
  195. auth-provider:
  196. name: gcp
  197. contexts:
  198. - context:
  199. cluster: cluster-test
  200. user: test-admin
  201. name: context-test
  202. current-context: context-test
  203. `
  204. const AWSIamAuthenticatorExec = `
  205. apiVersion: v1
  206. clusters:
  207. - cluster:
  208. server: https://10.10.10.10
  209. certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  210. name: cluster-test
  211. contexts:
  212. - context:
  213. cluster: cluster-test
  214. user: test-admin
  215. name: context-test
  216. current-context: context-test
  217. kind: Config
  218. preferences: {}
  219. users:
  220. - name: test-admin
  221. user:
  222. exec:
  223. apiVersion: client.authentication.k8s.io/v1alpha1
  224. command: aws-iam-authenticator
  225. args:
  226. - "token"
  227. - "-i"
  228. - "cluster-test-aws-id-guess"
  229. `
  230. const AWSEKSGetTokenExec = `
  231. apiVersion: v1
  232. clusters:
  233. - cluster:
  234. server: https://10.10.10.10
  235. certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  236. name: cluster-test
  237. contexts:
  238. - context:
  239. cluster: cluster-test
  240. user: test-admin
  241. name: context-test
  242. current-context: context-test
  243. kind: Config
  244. preferences: {}
  245. users:
  246. - name: test-admin
  247. user:
  248. exec:
  249. apiVersion: client.authentication.k8s.io/v1alpha1
  250. command: aws
  251. args:
  252. - "eks"
  253. - "get-token"
  254. - "--cluster-name"
  255. - "cluster-test-aws-id-guess"
  256. `
  257. const OIDCAuthWithoutData = `
  258. apiVersion: v1
  259. clusters:
  260. - cluster:
  261. server: https://10.10.10.10
  262. certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  263. name: cluster-test
  264. contexts:
  265. - context:
  266. cluster: cluster-test
  267. user: test-admin
  268. name: context-test
  269. current-context: context-test
  270. kind: Config
  271. preferences: {}
  272. users:
  273. - name: test-admin
  274. user:
  275. auth-provider:
  276. config:
  277. client-id: porter-api
  278. id-token: token
  279. idp-issuer-url: https://10.10.10.10
  280. idp-certificate-authority: /fake/path/to/ca.pem
  281. name: oidc
  282. `
  283. const OIDCAuthWithData = `
  284. apiVersion: v1
  285. clusters:
  286. - cluster:
  287. server: https://10.10.10.10
  288. certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  289. name: cluster-test
  290. contexts:
  291. - context:
  292. cluster: cluster-test
  293. user: test-admin
  294. name: context-test
  295. current-context: context-test
  296. kind: Config
  297. preferences: {}
  298. users:
  299. - name: test-admin
  300. user:
  301. auth-provider:
  302. config:
  303. client-id: porter-api
  304. id-token: token
  305. idp-issuer-url: https://10.10.10.10
  306. idp-certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  307. name: oidc
  308. `
  309. const BasicAuth = `
  310. apiVersion: v1
  311. clusters:
  312. - cluster:
  313. server: https://10.10.10.10
  314. certificate-authority-data: LS0tLS1CRUdJTiBDRVJ=
  315. name: cluster-test
  316. contexts:
  317. - context:
  318. cluster: cluster-test
  319. user: test-admin
  320. name: context-test
  321. current-context: context-test
  322. kind: Config
  323. preferences: {}
  324. users:
  325. - name: test-admin
  326. user:
  327. username: admin
  328. password: changeme
  329. `