From ae3ef051cdddc0c2621da6801e3fb9ffe23cdbaf Mon Sep 17 00:00:00 2001 From: skoc10 Date: Fri, 18 Mar 2022 20:01:23 +0000 Subject: [PATCH 01/14] rancher --- infrastructure/rancher-cluster.rkestate | 14 +++++++------- infrastructure/rancher-cluster.yml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/infrastructure/rancher-cluster.rkestate b/infrastructure/rancher-cluster.rkestate index 68c200e..a997c8b 100644 --- a/infrastructure/rancher-cluster.rkestate +++ b/infrastructure/rancher-cluster.rkestate @@ -3,7 +3,7 @@ "rkeConfig": { "nodes": [ { - "address": "44.203.109.17", + "address": "172.31.6.220", "port": "22", "internalAddress": "172.31.6.220", "role": [ @@ -11,7 +11,7 @@ "etcd", "worker" ], - "hostnameOverride": "44.203.109.17", + "hostnameOverride": "172.31.6.220", "user": "ubuntu", "sshKeyPath": "~/.ssh/call-rancher.pem" } @@ -199,9 +199,9 @@ }, "certificatesBundle": { "kube-admin": { - "certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIDCjCCAfKgAwIBAgIIDS5Vf1XI2DEwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UE\nAxMHa3ViZS1jYTAeFw0yMjAzMTQyMDU4MzRaFw0zMjAzMTEyMDU4MzZaMC4xFzAV\nBgNVBAoTDnN5c3RlbTptYXN0ZXJzMRMwEQYDVQQDEwprdWJlLWFkbWluMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCGIdYQo6pw84TRXzPEwWhUaop2E\nepWO7ylfBwDFyJvDNB9pLxBKsTnTponrJpkFHstt3QItDKJj0DC33XpTcSO7jgqX\nzgIsqK9p0DVY9v55mH9bpESNla+sRPPzPR0ue13HPecyvwRdQuzUcmWbA5/07tie\nuW4DWLtUrLj3IKpHbwP3iqxiNXIvGW4tLmf4WERhbR+B0ggM5NrElc8IAU05yKNR\nNMnwnSAUwzBJZxGB2c6Q96EDhSK7AjuetFaIEgn1mxFrILNqqEnNnhWY9fParZNJ\nkwYaGqeYqGmdah+JDx87m8PCxcEWHY67Pu5dF4Us579iSDA7GLgD2XtSkQIDAQAB\no0gwRjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwHwYDVR0j\nBBgwFoAU07RwD/v/IGUc25CTSk9SzezrBrowDQYJKoZIhvcNAQELBQADggEBAJ+6\n0XJ/nuwRZXzn4HwbmZkf7akDzkYFdLChSUkNMvJm8kjdVdwxij6BFiMhw747p2CP\n97fqfpnM14UTb5w+UXvXVcg4LEaH0HoGlDXFtYq/LJ+vop2HGm21S7cOG00XduV2\ngAW9JpxC/jGi5DnOGsp33Cgb+ufAY50O3Gydhu365lToXJZ4uVOORWLOI099vVOA\nbrpjzs/ZG3sRRT/vOrdx8amwYe/QglqCcxZDmHLjHYT94I3IlSr1FppFo1TafIuM\n2qQZcR5FUZ6vk7Kz77Dq7rCtDe4lgu4M+JQZ9vYesSX1Z2ADlGKSORJQG9W5onzr\n+qAy5kk/Jp/xHkF9p00=\n-----END CERTIFICATE-----\n", + "certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIDCjCCAfKgAwIBAgIIZYb2JkTKKKkwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UE\nAxMHa3ViZS1jYTAeFw0yMjAzMTQyMDU4MzRaFw0zMjAzMTUwMzU0NTJaMC4xFzAV\nBgNVBAoTDnN5c3RlbTptYXN0ZXJzMRMwEQYDVQQDEwprdWJlLWFkbWluMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCGIdYQo6pw84TRXzPEwWhUaop2E\nepWO7ylfBwDFyJvDNB9pLxBKsTnTponrJpkFHstt3QItDKJj0DC33XpTcSO7jgqX\nzgIsqK9p0DVY9v55mH9bpESNla+sRPPzPR0ue13HPecyvwRdQuzUcmWbA5/07tie\nuW4DWLtUrLj3IKpHbwP3iqxiNXIvGW4tLmf4WERhbR+B0ggM5NrElc8IAU05yKNR\nNMnwnSAUwzBJZxGB2c6Q96EDhSK7AjuetFaIEgn1mxFrILNqqEnNnhWY9fParZNJ\nkwYaGqeYqGmdah+JDx87m8PCxcEWHY67Pu5dF4Us579iSDA7GLgD2XtSkQIDAQAB\no0gwRjAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwHwYDVR0j\nBBgwFoAU07RwD/v/IGUc25CTSk9SzezrBrowDQYJKoZIhvcNAQELBQADggEBACUT\n2whBbmu+dxACnyfO6XWg6j6/HzpXWTKqjYRhM72NyQZG01iRGQqhjDxuYQVQ5BkB\nd23WT9EzPWOkpFwI6K1JX0HnjhXpY+wrT1xcmBgC7FT8EcUwDyPywqqcDC+NOfOn\nRx+Y6p+p0xBP2IxO09R0r20csWmtDtPBhghNwA8wG/RI6ptsiWHgBFDum4Fz8DBS\ndtcF/v9pTGRBA0lbLcNRYFSfX/8BNemKf7PKtahihMafHalFOQgC5OkkHnHebqJ5\nLAB29iokYRvvelzGrP9AyUN0VBEzy3NS0R0NgGVr6Fl9MTDbcbNktUTUvWqwuMIm\nm3gd8WUtZRtHbwv7Axg=\n-----END CERTIFICATE-----\n", "keyPEM": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAxCGIdYQo6pw84TRXzPEwWhUaop2EepWO7ylfBwDFyJvDNB9p\nLxBKsTnTponrJpkFHstt3QItDKJj0DC33XpTcSO7jgqXzgIsqK9p0DVY9v55mH9b\npESNla+sRPPzPR0ue13HPecyvwRdQuzUcmWbA5/07tieuW4DWLtUrLj3IKpHbwP3\niqxiNXIvGW4tLmf4WERhbR+B0ggM5NrElc8IAU05yKNRNMnwnSAUwzBJZxGB2c6Q\n96EDhSK7AjuetFaIEgn1mxFrILNqqEnNnhWY9fParZNJkwYaGqeYqGmdah+JDx87\nm8PCxcEWHY67Pu5dF4Us579iSDA7GLgD2XtSkQIDAQABAoIBAQC32VsqFYWpTmV/\nEWrQULJrbub10kQSCMnghF5wmRfNkb0sydj2ZgYuFS/CJ/yGxN/Y2waUKmsCMeLw\nkAp6kSVQpBc28dUVJlKomS3OH4PSm/5tpczIsf4qd287f5XeDtG4kNKow2V9S2EE\n0C3hQj9J6ZJWpjY7SdXXQlsAQa5eLbvrL5jE5qQV90JyNOjwuI9yrwt0+K6jxn3i\nftckhWLmmcCxgE/siqq0go9NBCRcKFRkQjYm0BFSeuG7l5MG9+vQ0xxlpEQE9q6i\nIcyYB2gKQGvpei7bpatrJ3YOLivibpN5NAkVA96FGjlhCl8AnN9W+evRnqvQLCdG\nSTdTCHaVAoGBAOWRQQ0tZE6249Cxxx2rGnJlA9joI7vBcvFljl7ZQLkrJWXH8x2i\n7uoUxvtpmgQlZ9KpGGeoP2dOCGJ6injDi7Qfx5i1KkTLtJk0NXPItPxbrHtOmZrM\nv4drvCycOD1JImQLxEBmSKTBRkOtfLFwpP5Oq3ZOPvPkUFVWCNMBuf2rAoGBANq2\ntG0wkQBNWV18djiZKVwuks34DvtOcoFAJYPr++1RMR6gdewVQn6e3KxSl7o7J7E2\niwV7HEByxokPAIAgteFuqDPmCaWQ/sDQl6eOOkUCwWTjgse/t/PJaA5kgqSQNTsE\nO4famIS0ThcE/QxZC2rlGTEz950jRYP7GNibUNyzAoGBAIGgiYj1TqSb5PvcxsBb\n820Q2SFLw5GrZEomvEOWjVOBp3ZXd1IOxLVs0gb41DzvGjb7wIoXmOWuTFG/PB2A\n3YvyPfRep+V82ReBQYWFmZy97yEZeubMIoJHNVRDSgZhG4g+lKyAlRhjAlgIyFYx\ncxkeNvdwq19wVmQ5VnY/jVRNAoGAGt5FDgDgX0whRVXL5CoUpalnCXyGwqKheHVb\n5nfwC/hkc2G8+tKlx45Wh6jh0NQBjUipDXRRRS2UbDP2mMbr8RS5/x4sYzWLxj4Z\n01Cqod2zymQUpdtMittcOCBq2DKLB4P+mDLnd636xeMr/v9VYr1gOeYrbhduK8eG\nBt4VsfcCgYAW7a4WgLaVstYHeckMV9WLkVOS6bFL8L3Lgg/w5aemkzxOP9RMCFbx\nML7BPndcNfbycKl0qUoqZkwCkMWrEDRxHBv5OgfBREbzAtpdrJlVEWljm1B/o5pz\nS0S1HSB7bDluDNx3azBdI8gs5eQ0ldpImCZ4wj1RJxEy97JHnUGACQ==\n-----END RSA PRIVATE KEY-----\n", - "config": "apiVersion: v1\nkind: Config\nclusters:\n- cluster:\n api-version: v1\n certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM0VENDQWNtZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKTFdOaE1CNFhEVEl5TURNeE5ESXdOVGd6TkZvWERUTXlNRE14TVRJd05UZ3pORm93RWpFUU1BNEdBMVVFQXhNSAphM1ZpWlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5KSUpyZkY4c2RqCnZMWHYwVTg3U1IxeHdtZHRvWGFsZUVObDcvVExIeGhQei9rSllMZkNVRG1nekJqMldnc2RGQUcwZUhnaDZIeUEKVXlBeisrM0tnUXlqV0JSSzNKTGZyQUV2SjJ2NG53aDBFTWVZV0YrdUVldWdCcmdqMTliZ3VCUkhucEpyZkx2OApCSWNTV1lGc3hPb2VTWUVncE1kaXN6djhPdUJiYjk4L1dzd29TUGNCbDdUMytqRnZraUhlcGljbS9NOVdhMXN5CjlzeWpoN0pxQVpYTFdiZU1zR2Ezb0NueVRYRUlXbkI4L3hKYWY1MVdIK3dVU2NDUXkxcDkwR3JWNEltazhBU0sKa254UEpnanVGWGtEUGlmV3Nva0x6R3V3Z3dKZHJ4WGxlc09VWmIrRmoybU9NbUprZnJzQUFWK3Y5ZHFOVnl2RQpHMHZ2cHpkdEg4a0NBd0VBQWFOQ01FQXdEZ1lEVlIwUEFRSC9CQVFEQWdLa01BOEdBMVVkRXdFQi93UUZNQU1CCkFmOHdIUVlEVlIwT0JCWUVGTk8wY0EvNy95QmxITnVRazBwUFVzM3M2d2E2TUEwR0NTcUdTSWIzRFFFQkN3VUEKQTRJQkFRQmpYeXVZaFZETWZ6OFZ3UnlDRjQ5SmUwRy9tWGg5YXZrYWRtMTlkWTBJb2l6ZkRkQkNhRzFpcjdtdQpnckFzdkZEcG9jTWZjV1pMK0lJOGphQkZFOXlPUDFWbWd1a3RsKzUvNnVqTTU5cjZETkpxNDI2UzlTWWdDYzRKCmZSQkRONW5qbXJqM3JPL0pYSHdHRFBvZjNXd3duMEVTQXdCa0pOVjN6dmEvdFhRekVMclRMa05SVWVZMHJreTUKKzlpK0liR1Zta21PbHR6ckRtQVllVzRjNktET0ZMc3lFZjdFbWoyOU91TjduY21HVmxRc01uRTBrQ01DRWd3WApEY3RNVklDZjQ2a2ZSejBBREk3b3Fxay9MZW9lNXk1cEpXMlJQbUJnU1Fwb2lsbjd0VTlYK21na3ZJajJXSmlxCllKMzQ1Z0RBU2VTMk55cXFkVTE5VnF2d2ErajgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=\n server: \"https://44.203.109.17:6443\"\n name: \"local\"\ncontexts:\n- context:\n cluster: \"local\"\n user: \"kube-admin-local\"\n name: \"local\"\ncurrent-context: \"local\"\nusers:\n- name: \"kube-admin-local\"\n user:\n client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURDakNDQWZLZ0F3SUJBZ0lJRFM1VmYxWEkyREV3RFFZSktvWklodmNOQVFFTEJRQXdFakVRTUE0R0ExVUUKQXhNSGEzVmlaUzFqWVRBZUZ3MHlNakF6TVRReU1EVTRNelJhRncwek1qQXpNVEV5TURVNE16WmFNQzR4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVJNd0VRWURWUVFERXdwcmRXSmxMV0ZrYldsdU1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXhDR0lkWVFvNnB3ODRUUlh6UEV3V2hVYW9wMkUKZXBXTzd5bGZCd0RGeUp2RE5COXBMeEJLc1RuVHBvbnJKcGtGSHN0dDNRSXRES0pqMERDMzNYcFRjU083amdxWAp6Z0lzcUs5cDBEVlk5djU1bUg5YnBFU05sYStzUlBQelBSMHVlMTNIUGVjeXZ3UmRRdXpVY21XYkE1LzA3dGllCnVXNERXTHRVckxqM0lLcEhid1AzaXF4aU5YSXZHVzR0TG1mNFdFUmhiUitCMGdnTTVOckVsYzhJQVUwNXlLTlIKTk1ud25TQVV3ekJKWnhHQjJjNlE5NkVEaFNLN0FqdWV0RmFJRWduMW14RnJJTE5xcUVuTm5oV1k5ZlBhclpOSgprd1lhR3FlWXFHbWRhaCtKRHg4N204UEN4Y0VXSFk2N1B1NWRGNFVzNTc5aVNEQTdHTGdEMlh0U2tRSURBUUFCCm8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3SHdZRFZSMGoKQkJnd0ZvQVUwN1J3RC92L0lHVWMyNUNUU2s5U3plenJCcm93RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUorNgowWEovbnV3UlpYem40SHdibVprZjdha0R6a1lGZExDaFNVa05NdkptOGtqZFZkd3hpajZCRmlNaHc3NDdwMkNQCjk3ZnFmcG5NMTRVVGI1dytVWHZYVmNnNExFYUgwSG9HbERYRnRZcS9MSit2b3AySEdtMjFTN2NPRzAwWGR1VjIKZ0FXOUpweEMvakdpNURuT0dzcDMzQ2diK3VmQVk1ME8zR3lkaHUzNjVsVG9YSlo0dVZPT1JXTE9JMDk5dlZPQQpicnBqenMvWkczc1JSVC92T3JkeDhhbXdZZS9RZ2xxQ2N4WkRtSExqSFlUOTRJM0lsU3IxRnBwRm8xVGFmSXVNCjJxUVpjUjVGVVo2dms3S3o3N0RxN3JDdERlNGxndTRNK0pRWjl2WWVzU1gxWjJBRGxHS1NPUkpRRzlXNW9uenIKK3FBeTVray9KcC94SGtGOXAwMD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=\n client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBeENHSWRZUW82cHc4NFRSWHpQRXdXaFVhb3AyRWVwV083eWxmQndERnlKdkROQjlwCkx4QktzVG5UcG9uckpwa0ZIc3R0M1FJdERLSmowREMzM1hwVGNTTzdqZ3FYemdJc3FLOXAwRFZZOXY1NW1IOWIKcEVTTmxhK3NSUFB6UFIwdWUxM0hQZWN5dndSZFF1elVjbVdiQTUvMDd0aWV1VzREV0x0VXJMajNJS3BIYndQMwppcXhpTlhJdkdXNHRMbWY0V0VSaGJSK0IwZ2dNNU5yRWxjOElBVTA1eUtOUk5NbnduU0FVd3pCSlp4R0IyYzZRCjk2RURoU0s3QWp1ZXRGYUlFZ24xbXhGcklMTnFxRW5ObmhXWTlmUGFyWk5Ka3dZYUdxZVlxR21kYWgrSkR4ODcKbThQQ3hjRVdIWTY3UHU1ZEY0VXM1NzlpU0RBN0dMZ0QyWHRTa1FJREFRQUJBb0lCQVFDMzJWc3FGWVdwVG1WLwpFV3JRVUxKcmJ1YjEwa1FTQ01uZ2hGNXdtUmZOa2Iwc3lkajJaZ1l1RlMvQ0oveUd4Ti9ZMndhVUttc0NNZUx3CmtBcDZrU1ZRcEJjMjhkVVZKbEtvbVMzT0g0UFNtLzV0cGN6SXNmNHFkMjg3ZjVYZUR0RzRrTktvdzJWOVMyRUUKMEMzaFFqOUo2WkpXcGpZN1NkWFhRbHNBUWE1ZUxidnJMNWpFNXFRVjkwSnlOT2p3dUk5eXJ3dDArSzZqeG4zaQpmdGNraFdMbW1jQ3hnRS9zaXFxMGdvOU5CQ1JjS0ZSa1FqWW0wQkZTZXVHN2w1TUc5K3ZRMHh4bHBFUUU5cTZpCkljeVlCMmdLUUd2cGVpN2JwYXRySjNZT0xpdmlicE41TkFrVkE5NkZHamxoQ2w4QW5OOVcrZXZSbnF2UUxDZEcKU1RkVENIYVZBb0dCQU9XUlFRMHRaRTYyNDlDeHh4MnJHbkpsQTlqb0k3dkJjdkZsamw3WlFMa3JKV1hIOHgyaQo3dW9VeHZ0cG1nUWxaOUtwR0dlb1AyZE9DR0o2aW5qRGk3UWZ4NWkxS2tUTHRKazBOWFBJdFB4YnJIdE9tWnJNCnY0ZHJ2Q3ljT0QxSkltUUx4RUJtU0tUQlJrT3RmTEZ3cFA1T3EzWk9QdlBrVUZWV0NOTUJ1ZjJyQW9HQkFOcTIKdEcwd2tRQk5XVjE4ZGppWktWd3VrczM0RHZ0T2NvRkFKWVByKysxUk1SNmdkZXdWUW42ZTNLeFNsN283SjdFMgppd1Y3SEVCeXhva1BBSUFndGVGdXFEUG1DYVdRL3NEUWw2ZU9Pa1VDd1dUamdzZS90L1BKYUE1a2dxU1FOVHNFCk80ZmFtSVMwVGhjRS9ReFpDMnJsR1RFejk1MGpSWVA3R05pYlVOeXpBb0dCQUlHZ2lZajFUcVNiNVB2Y3hzQmIKODIwUTJTRkx3NUdyWkVvbXZFT1dqVk9CcDNaWGQxSU94TFZzMGdiNDFEenZHamI3d0lvWG1PV3VURkcvUEIyQQozWXZ5UGZSZXArVjgyUmVCUVlXRm1aeTk3eUVaZXViTUlvSkhOVlJEU2daaEc0ZytsS3lBbFJoakFsZ0l5Rll4CmN4a2VOdmR3cTE5d1ZtUTVWblkvalZSTkFvR0FHdDVGRGdEZ1gwd2hSVlhMNUNvVXBhbG5DWHlHd3FLaGVIVmIKNW5md0MvaGtjMkc4K3RLbHg0NVdoNmpoME5RQmpVaXBEWFJSUlMyVWJEUDJtTWJyOFJTNS94NHNZeldMeGo0WgowMUNxb2QyenltUVVwZHRNaXR0Y09DQnEyREtMQjRQK21ETG5kNjM2eGVNci92OVZZcjFnT2VZcmJoZHVLOGVHCkJ0NFZzZmNDZ1lBVzdhNFdnTGFWc3RZSGVja01WOVdMa1ZPUzZiRkw4TDNMZ2cvdzVhZW1renhPUDlSTUNGYngKTUw3QlBuZGNOZmJ5Y0tsMHFVb3Faa3dDa01XckVEUnhIQnY1T2dmQlJFYnpBdHBkckpsVkVXbGptMUIvbzVwegpTMFMxSFNCN2JEbHVETngzYXpCZEk4Z3M1ZVEwbGRwSW1DWjR3ajFSSnhFeTk3SkhuVUdBQ1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=", + "config": "apiVersion: v1\nkind: Config\nclusters:\n- cluster:\n api-version: v1\n certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM0VENDQWNtZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFTTVJBd0RnWURWUVFERXdkcmRXSmwKTFdOaE1CNFhEVEl5TURNeE5ESXdOVGd6TkZvWERUTXlNRE14TVRJd05UZ3pORm93RWpFUU1BNEdBMVVFQXhNSAphM1ZpWlMxallUQ0NBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU5KSUpyZkY4c2RqCnZMWHYwVTg3U1IxeHdtZHRvWGFsZUVObDcvVExIeGhQei9rSllMZkNVRG1nekJqMldnc2RGQUcwZUhnaDZIeUEKVXlBeisrM0tnUXlqV0JSSzNKTGZyQUV2SjJ2NG53aDBFTWVZV0YrdUVldWdCcmdqMTliZ3VCUkhucEpyZkx2OApCSWNTV1lGc3hPb2VTWUVncE1kaXN6djhPdUJiYjk4L1dzd29TUGNCbDdUMytqRnZraUhlcGljbS9NOVdhMXN5CjlzeWpoN0pxQVpYTFdiZU1zR2Ezb0NueVRYRUlXbkI4L3hKYWY1MVdIK3dVU2NDUXkxcDkwR3JWNEltazhBU0sKa254UEpnanVGWGtEUGlmV3Nva0x6R3V3Z3dKZHJ4WGxlc09VWmIrRmoybU9NbUprZnJzQUFWK3Y5ZHFOVnl2RQpHMHZ2cHpkdEg4a0NBd0VBQWFOQ01FQXdEZ1lEVlIwUEFRSC9CQVFEQWdLa01BOEdBMVVkRXdFQi93UUZNQU1CCkFmOHdIUVlEVlIwT0JCWUVGTk8wY0EvNy95QmxITnVRazBwUFVzM3M2d2E2TUEwR0NTcUdTSWIzRFFFQkN3VUEKQTRJQkFRQmpYeXVZaFZETWZ6OFZ3UnlDRjQ5SmUwRy9tWGg5YXZrYWRtMTlkWTBJb2l6ZkRkQkNhRzFpcjdtdQpnckFzdkZEcG9jTWZjV1pMK0lJOGphQkZFOXlPUDFWbWd1a3RsKzUvNnVqTTU5cjZETkpxNDI2UzlTWWdDYzRKCmZSQkRONW5qbXJqM3JPL0pYSHdHRFBvZjNXd3duMEVTQXdCa0pOVjN6dmEvdFhRekVMclRMa05SVWVZMHJreTUKKzlpK0liR1Zta21PbHR6ckRtQVllVzRjNktET0ZMc3lFZjdFbWoyOU91TjduY21HVmxRc01uRTBrQ01DRWd3WApEY3RNVklDZjQ2a2ZSejBBREk3b3Fxay9MZW9lNXk1cEpXMlJQbUJnU1Fwb2lsbjd0VTlYK21na3ZJajJXSmlxCllKMzQ1Z0RBU2VTMk55cXFkVTE5VnF2d2ErajgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=\n server: \"https://172.31.6.220:6443\"\n name: \"local\"\ncontexts:\n- context:\n cluster: \"local\"\n user: \"kube-admin-local\"\n name: \"local\"\ncurrent-context: \"local\"\nusers:\n- name: \"kube-admin-local\"\n user:\n client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURDakNDQWZLZ0F3SUJBZ0lJWlliMkprVEtLS2t3RFFZSktvWklodmNOQVFFTEJRQXdFakVRTUE0R0ExVUUKQXhNSGEzVmlaUzFqWVRBZUZ3MHlNakF6TVRReU1EVTRNelJhRncwek1qQXpNVFV3TXpVME5USmFNQzR4RnpBVgpCZ05WQkFvVERuTjVjM1JsYlRwdFlYTjBaWEp6TVJNd0VRWURWUVFERXdwcmRXSmxMV0ZrYldsdU1JSUJJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXhDR0lkWVFvNnB3ODRUUlh6UEV3V2hVYW9wMkUKZXBXTzd5bGZCd0RGeUp2RE5COXBMeEJLc1RuVHBvbnJKcGtGSHN0dDNRSXRES0pqMERDMzNYcFRjU083amdxWAp6Z0lzcUs5cDBEVlk5djU1bUg5YnBFU05sYStzUlBQelBSMHVlMTNIUGVjeXZ3UmRRdXpVY21XYkE1LzA3dGllCnVXNERXTHRVckxqM0lLcEhid1AzaXF4aU5YSXZHVzR0TG1mNFdFUmhiUitCMGdnTTVOckVsYzhJQVUwNXlLTlIKTk1ud25TQVV3ekJKWnhHQjJjNlE5NkVEaFNLN0FqdWV0RmFJRWduMW14RnJJTE5xcUVuTm5oV1k5ZlBhclpOSgprd1lhR3FlWXFHbWRhaCtKRHg4N204UEN4Y0VXSFk2N1B1NWRGNFVzNTc5aVNEQTdHTGdEMlh0U2tRSURBUUFCCm8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUhBd0l3SHdZRFZSMGoKQkJnd0ZvQVUwN1J3RC92L0lHVWMyNUNUU2s5U3plenJCcm93RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUNVVAoyd2hCYm11K2R4QUNueWZPNlhXZzZqNi9IenBYV1RLcWpZUmhNNzJOeVFaRzAxaVJHUXFoakR4dVlRVlE1QmtCCmQyM1dUOUV6UFdPa3BGd0k2SzFKWDBIbmpoWHBZK3dyVDF4Y21CZ0M3RlQ4RWNVd0R5UHl3cXFjREMrTk9mT24KUngrWTZwK3AweEJQMkl4TzA5UjByMjBjc1dtdER0UEJoZ2hOd0E4d0cvUkk2cHRzaVdIZ0JGRHVtNEZ6OERCUwpkdGNGL3Y5cFRHUkJBMGxiTGNOUllGU2ZYLzhCTmVtS2Y3UEt0YWhpaE1hZkhhbEZPUWdDNU9ra0huSGVicUo1CkxBQjI5aW9rWVJ2dmVsekdyUDlBeVVOMFZCRXp5M05TMFIwTmdHVnI2Rmw5TVREYmNiTmt0VVRVdldxd3VNSW0KbTNnZDhXVXRaUnRIYnd2N0F4Zz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=\n client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBeENHSWRZUW82cHc4NFRSWHpQRXdXaFVhb3AyRWVwV083eWxmQndERnlKdkROQjlwCkx4QktzVG5UcG9uckpwa0ZIc3R0M1FJdERLSmowREMzM1hwVGNTTzdqZ3FYemdJc3FLOXAwRFZZOXY1NW1IOWIKcEVTTmxhK3NSUFB6UFIwdWUxM0hQZWN5dndSZFF1elVjbVdiQTUvMDd0aWV1VzREV0x0VXJMajNJS3BIYndQMwppcXhpTlhJdkdXNHRMbWY0V0VSaGJSK0IwZ2dNNU5yRWxjOElBVTA1eUtOUk5NbnduU0FVd3pCSlp4R0IyYzZRCjk2RURoU0s3QWp1ZXRGYUlFZ24xbXhGcklMTnFxRW5ObmhXWTlmUGFyWk5Ka3dZYUdxZVlxR21kYWgrSkR4ODcKbThQQ3hjRVdIWTY3UHU1ZEY0VXM1NzlpU0RBN0dMZ0QyWHRTa1FJREFRQUJBb0lCQVFDMzJWc3FGWVdwVG1WLwpFV3JRVUxKcmJ1YjEwa1FTQ01uZ2hGNXdtUmZOa2Iwc3lkajJaZ1l1RlMvQ0oveUd4Ti9ZMndhVUttc0NNZUx3CmtBcDZrU1ZRcEJjMjhkVVZKbEtvbVMzT0g0UFNtLzV0cGN6SXNmNHFkMjg3ZjVYZUR0RzRrTktvdzJWOVMyRUUKMEMzaFFqOUo2WkpXcGpZN1NkWFhRbHNBUWE1ZUxidnJMNWpFNXFRVjkwSnlOT2p3dUk5eXJ3dDArSzZqeG4zaQpmdGNraFdMbW1jQ3hnRS9zaXFxMGdvOU5CQ1JjS0ZSa1FqWW0wQkZTZXVHN2w1TUc5K3ZRMHh4bHBFUUU5cTZpCkljeVlCMmdLUUd2cGVpN2JwYXRySjNZT0xpdmlicE41TkFrVkE5NkZHamxoQ2w4QW5OOVcrZXZSbnF2UUxDZEcKU1RkVENIYVZBb0dCQU9XUlFRMHRaRTYyNDlDeHh4MnJHbkpsQTlqb0k3dkJjdkZsamw3WlFMa3JKV1hIOHgyaQo3dW9VeHZ0cG1nUWxaOUtwR0dlb1AyZE9DR0o2aW5qRGk3UWZ4NWkxS2tUTHRKazBOWFBJdFB4YnJIdE9tWnJNCnY0ZHJ2Q3ljT0QxSkltUUx4RUJtU0tUQlJrT3RmTEZ3cFA1T3EzWk9QdlBrVUZWV0NOTUJ1ZjJyQW9HQkFOcTIKdEcwd2tRQk5XVjE4ZGppWktWd3VrczM0RHZ0T2NvRkFKWVByKysxUk1SNmdkZXdWUW42ZTNLeFNsN283SjdFMgppd1Y3SEVCeXhva1BBSUFndGVGdXFEUG1DYVdRL3NEUWw2ZU9Pa1VDd1dUamdzZS90L1BKYUE1a2dxU1FOVHNFCk80ZmFtSVMwVGhjRS9ReFpDMnJsR1RFejk1MGpSWVA3R05pYlVOeXpBb0dCQUlHZ2lZajFUcVNiNVB2Y3hzQmIKODIwUTJTRkx3NUdyWkVvbXZFT1dqVk9CcDNaWGQxSU94TFZzMGdiNDFEenZHamI3d0lvWG1PV3VURkcvUEIyQQozWXZ5UGZSZXArVjgyUmVCUVlXRm1aeTk3eUVaZXViTUlvSkhOVlJEU2daaEc0ZytsS3lBbFJoakFsZ0l5Rll4CmN4a2VOdmR3cTE5d1ZtUTVWblkvalZSTkFvR0FHdDVGRGdEZ1gwd2hSVlhMNUNvVXBhbG5DWHlHd3FLaGVIVmIKNW5md0MvaGtjMkc4K3RLbHg0NVdoNmpoME5RQmpVaXBEWFJSUlMyVWJEUDJtTWJyOFJTNS94NHNZeldMeGo0WgowMUNxb2QyenltUVVwZHRNaXR0Y09DQnEyREtMQjRQK21ETG5kNjM2eGVNci92OVZZcjFnT2VZcmJoZHVLOGVHCkJ0NFZzZmNDZ1lBVzdhNFdnTGFWc3RZSGVja01WOVdMa1ZPUzZiRkw4TDNMZ2cvdzVhZW1renhPUDlSTUNGYngKTUw3QlBuZGNOZmJ5Y0tsMHFVb3Faa3dDa01XckVEUnhIQnY1T2dmQlJFYnpBdHBkckpsVkVXbGptMUIvbzVwegpTMFMxSFNCN2JEbHVETngzYXpCZEk4Z3M1ZVEwbGRwSW1DWjR3ajFSSnhFeTk3SkhuVUdBQ1E9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=", "name": "kube-admin", "commonName": "kube-admin", "ouName": "system:masters", @@ -210,10 +210,10 @@ "keyEnvName": "KUBE_ADMIN_KEY", "keyPath": "/etc/kubernetes/ssl/kube-admin-key.pem", "configEnvName": "KUBECFG_KUBE_ADMIN", - "configPath": "./kube_config_cluster.yml" + "configPath": "./kube_config_rancher-cluster.yml" }, "kube-apiserver": { - "certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIDkDCCAnigAwIBAgIISdxqe2KNiiwwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UE\nAxMHa3ViZS1jYTAeFw0yMjAzMTQyMDU4MzRaFw0zMjAzMTEyMDU4MzVaMBkxFzAV\nBgNVBAMTDmt1YmUtYXBpc2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAqsz+dPbO+eYhao0NVktKi8IcWZ7CzEq8bIXZ4XQw3jUhZbdP+5Tp+16g\n1YW4VnAT2JLSrtgvIw2lkv7a7EjZwhWc3wqDzxmOLF/N7MI7N5haQLA0fSwiX5Tj\ngFY05IflziFqNUMUtyL93K8uG4TGfNilFFdumJVhR/WJLwJ+qC3vOYjmCnD/EC+e\njK/Gl6HkYbZaoNGw78UsaKGzmkeb91upx5RveILrPeD0h21Ds9kGOI8tXDrq+L1B\nSSpAQskSsPJAbb+xLFpvTKqH6m/dxp3J5hlUpxSK6hxqtTMEUymoF5iTgfKHdCUk\n/aZgRdiNbGhSMPAWaiD1WLT6ajN1bQIDAQABo4HiMIHfMA4GA1UdDwEB/wQEAwIF\noDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAU07Rw\nD/v/IGUc25CTSk9SzezrBrowgYwGA1UdEQSBhDCBgYIJbG9jYWxob3N0ggprdWJl\ncm5ldGVzghJrdWJlcm5ldGVzLmRlZmF1bHSCFmt1YmVybmV0ZXMuZGVmYXVsdC5z\ndmOCJGt1YmVybmV0ZXMuZGVmYXVsdC5zdmMuY2x1c3Rlci5sb2NhbIcELMttEYcE\nrB8G3IcEfwAAAYcECisAATANBgkqhkiG9w0BAQsFAAOCAQEAiOlyRFcupcb9hLWL\n0e/hVTiH2qO/h3vSJ87kNmU/hNJnLPzqU0HNVXVEwiUhZGf/g3/3kl+QSwgxR/Fv\nkrFxEdOjKBwqskHmmrKpurAamDtQlqsNlSpTmoCDvP3xpWv4qdLtF6nSIJ4f/AVk\nKS5NIA5GEOnNB45s69b7tOpdq0qEuRCn09egOkPAkoZ5yWoeWm83Qf9L8L57JreJ\n7AI1arEqT3WRCufc4KonhooWKfQ9qwiI29Y+bz6u65buYPonmv1mh3gmyppa3zjm\nmMi7BSQZkaDlXS+DpxZRJoKih/5KDoq//N9X+94P2Efui2OndCwtHW+kOy2GmJxZ\nL8TEMQ==\n-----END CERTIFICATE-----\n", + "certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIDiDCCAnCgAwIBAgIIYJ7AihRLHmgwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UE\nAxMHa3ViZS1jYTAeFw0yMjAzMTQyMDU4MzRaFw0zMjAzMTUwMzQ0MzlaMBkxFzAV\nBgNVBAMTDmt1YmUtYXBpc2VydmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\nCgKCAQEAqsz+dPbO+eYhao0NVktKi8IcWZ7CzEq8bIXZ4XQw3jUhZbdP+5Tp+16g\n1YW4VnAT2JLSrtgvIw2lkv7a7EjZwhWc3wqDzxmOLF/N7MI7N5haQLA0fSwiX5Tj\ngFY05IflziFqNUMUtyL93K8uG4TGfNilFFdumJVhR/WJLwJ+qC3vOYjmCnD/EC+e\njK/Gl6HkYbZaoNGw78UsaKGzmkeb91upx5RveILrPeD0h21Ds9kGOI8tXDrq+L1B\nSSpAQskSsPJAbb+xLFpvTKqH6m/dxp3J5hlUpxSK6hxqtTMEUymoF5iTgfKHdCUk\n/aZgRdiNbGhSMPAWaiD1WLT6ajN1bQIDAQABo4HaMIHXMA4GA1UdDwEB/wQEAwIF\noDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHwYDVR0jBBgwFoAU07Rw\nD/v/IGUc25CTSk9SzezrBrowgYQGA1UdEQR9MHuCCWxvY2FsaG9zdIIKa3ViZXJu\nZXRlc4ISa3ViZXJuZXRlcy5kZWZhdWx0ghZrdWJlcm5ldGVzLmRlZmF1bHQuc3Zj\ngiRrdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWyHBKwfBtyHBH8A\nAAGHBAorAAEwDQYJKoZIhvcNAQELBQADggEBACBwX9lB65eW19Fi1S3QZHBREjlP\npMRPL20WYUQZ8306pB9B3zR8iSyYCH0rhGYQ3+6GF7iR8aNNQ9IoY8iEFeKyrGRI\nQlrnwr0En+yKJFEcHAP1n9q/ODLo5cRdCuQqA6RM/PKcULfp6OKxEkuoPA2v2ItA\nEfzJRO3wylNLRGn6jIvP1l31NJ1n/NDyF9i4XGWncOTn2CvGx6WmQZK5aAd8/JLp\nIUmhLmsaMiSwg580Oj6Pc7ppTnQ8KBL4h6ddEcTvBr8rRTEq0fOxjRlP1ue10k/P\nWNXBL5y8aLryC6vMEZQhNlTC9ibGRKk4cGTu7gvsDe/j3FwRIDdxEDGQEeU=\n-----END CERTIFICATE-----\n", "keyPEM": "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAqsz+dPbO+eYhao0NVktKi8IcWZ7CzEq8bIXZ4XQw3jUhZbdP\n+5Tp+16g1YW4VnAT2JLSrtgvIw2lkv7a7EjZwhWc3wqDzxmOLF/N7MI7N5haQLA0\nfSwiX5TjgFY05IflziFqNUMUtyL93K8uG4TGfNilFFdumJVhR/WJLwJ+qC3vOYjm\nCnD/EC+ejK/Gl6HkYbZaoNGw78UsaKGzmkeb91upx5RveILrPeD0h21Ds9kGOI8t\nXDrq+L1BSSpAQskSsPJAbb+xLFpvTKqH6m/dxp3J5hlUpxSK6hxqtTMEUymoF5iT\ngfKHdCUk/aZgRdiNbGhSMPAWaiD1WLT6ajN1bQIDAQABAoIBABb+iBdJDu5XzBHj\nMXN3qW6NUHHETOdh/GID1yRiFx4jOv7Nogf1sVZ1E+QLH5kLd7CFe7WsRxRKBwt2\nIhUDbcWSUU85xCsCfsB8mWWRdJV0floNHtPnOC10BvjFIlPN8+M/XmQTRtus605l\niyiLRImURQ0rBCmomrMsXC6nAFQ1uprm+9JZZcti/XNVjGKjAL0SZOFenD4LhMBh\n9JHhKnkBRzcyk3Dr3vcSn0X4VgCpT8iUUnJuEZMeJTPUmB6EY1DfGOyLY6q5RArC\necr5SxLLVH5d8Zz3EnPbCVQ7wQqV1knll+RyHRZ32RwXg5XJnFBpLxSlzwtb2KVC\nHAgV1cECgYEA1Ew5p1D5DwJssZo57ZfAuMLjsJSSmAR/bAeXqEa+Im1wgQa5GaGg\n2LHRXjUPa40VKTCgktoi4kDRa6n0MyWZ7jvWmkFBdtDvkaD7F+Y7H+nJV6as48vo\nV7tuiAa3h0pVDLv5ifUCYmyqGM8WGNbh2yi71t1P53lD3k+ly766bPECgYEAzfXw\nX60LL17zrPWffg+YL8RznLydaFfiAOlU4CCuZpZB2Y6yHYkkhS/zM04c2fNP724B\nBwCzYXDt8XoiwfYzwrom4kY/1uPgljwbeUJak3CmZBjg/ram3RFUsBJKtMM6E4Rc\noL84lG4jSgs0g4PR345m8oaFeCuJCH7s9xI/gD0CgYBsCtL4lNv7yIcap9u9UBLT\ntNN9xU8JsJhMmVyUVlRjXwD3mT1QjxI11eEwqZ5MZQOU79t4gS1pqgUqXtcZxJQf\nSzK/VGCFoHWbzqqbEh+a8Tb3taqdT+PR6mCpN4nlf23jSjMIA7oP7y9t6s5bG9jb\n2VInWoBU1EE2/Z/qHgnwcQKBgGL3/126RVmqAuXl0ZI95B9wAy4Z5HmzYUKW3NYm\nXielpFbqnuRadlYZyH+q1WpV5N9kuNGooIn+Phh/XBxgNlcoJG8u2pZkQhNvJrSK\nEgQvaYVH/zXmhyBLp6pD3+oktc+TFv+XY5TPp914rO9VdJA8WXPI+HHaWarfcvb2\nqdTxAoGAUYZzF6VbXPtAkgok8sqHWttJp1+MphfG7Z21AtQvvmiTjAVg/hq/d2HV\na/wi50dyX7g2AypIJYoRO5G52RgnN5RZWzONdWwQKqWdyMh9+ERJOn5OT54PMZYE\nDxTIC4deucuhG52f5857lwjdxp2hBQ3GExw0MUqdvFS4/6524q0=\n-----END RSA PRIVATE KEY-----\n", "config": "", "name": "kube-apiserver", @@ -283,7 +283,7 @@ "configPath": "/etc/kubernetes/ssl/kubecfg-kube-controller-manager.yaml" }, "kube-etcd-172-31-6-220": { - "certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIDizCCAnOgAwIBAgIIQDCI3bBdPXEwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UE\nAxMHa3ViZS1jYTAeFw0yMjAzMTQyMDU4MzRaFw0zMjAzMTEyMDU4MzZaMBQxEjAQ\nBgNVBAMTCWt1YmUtZXRjZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAJjXyiO88dT79nZZZG/U4ofDqb8/Xqq3wwIAdlMSlkYXjFTWBne2OgO3gk3oRvPL\nXK80S6XKOh05nN43v40aBfxaarWp6AvG3eZS4kP3efY/3buZ2uIiiDnALs+logyR\nV987yKsQY12OzG2cJcubDqDNcBqvDGAQFPUqqDYNqdeW5JDmlLUtpuiPeoD+8CHA\n/rfmuTX61/bdtPfX6Ytkys8bthpO7+gPxSFLC9V4JJRjPpixbl6/MkR6UxPM7+XF\nNKcdCw5PgiFJyEAjXRi/6ts37BqsEw03HOP6qGr3UfOArZnsMo5nH1LW55noWEg3\nlmlbNLo9IgM6/gBtroFLTXkCAwEAAaOB4jCB3zAOBgNVHQ8BAf8EBAMCBaAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFNO0cA/7/yBl\nHNuQk0pPUs3s6wa6MIGMBgNVHREEgYQwgYGCCWxvY2FsaG9zdIIKa3ViZXJuZXRl\nc4ISa3ViZXJuZXRlcy5kZWZhdWx0ghZrdWJlcm5ldGVzLmRlZmF1bHQuc3ZjgiRr\ndWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWyHBCzLbRGHBKwfBtyH\nBH8AAAGHBAorAAEwDQYJKoZIhvcNAQELBQADggEBAAUWUZ3nqcA77zP7Nx7ojmDE\nbYhNRN6SJBDZQS9ifERqGl+7XUonWi165mU3NU4oG5+ANpZ/Tk0QDzAgIkUQwh1o\nXPvMp9wyp1+Ui5Knthqf6WJzTc9EXBVuP7uhcDVgS7S1za4gSX1T9QMk36a3k+9Q\n8LiDWVuJfn20Eeylmn+JKfYH3q98nLim5LcTrbQ3jLNZjewgplYU1NvNgMkcIN88\n8dg1smplWnyqOXF1Xtzw1LZW51auboeKvx4OeBfKKYbV4x59PDEzhoHnksQda230\nq9e6vccaRybeM2KtBlw2hamwZmrDKJC3dsaCExK5Lj3tTtZJIWa1SB1gLIHbEag=\n-----END CERTIFICATE-----\n", + "certificatePEM": "-----BEGIN CERTIFICATE-----\nMIIDgzCCAmugAwIBAgIIIy9VUdW2NLEwDQYJKoZIhvcNAQELBQAwEjEQMA4GA1UE\nAxMHa3ViZS1jYTAeFw0yMjAzMTQyMDU4MzRaFw0zMjAzMTUwMzQ0MzlaMBQxEjAQ\nBgNVBAMTCWt1YmUtZXRjZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB\nAJjXyiO88dT79nZZZG/U4ofDqb8/Xqq3wwIAdlMSlkYXjFTWBne2OgO3gk3oRvPL\nXK80S6XKOh05nN43v40aBfxaarWp6AvG3eZS4kP3efY/3buZ2uIiiDnALs+logyR\nV987yKsQY12OzG2cJcubDqDNcBqvDGAQFPUqqDYNqdeW5JDmlLUtpuiPeoD+8CHA\n/rfmuTX61/bdtPfX6Ytkys8bthpO7+gPxSFLC9V4JJRjPpixbl6/MkR6UxPM7+XF\nNKcdCw5PgiFJyEAjXRi/6ts37BqsEw03HOP6qGr3UfOArZnsMo5nH1LW55noWEg3\nlmlbNLo9IgM6/gBtroFLTXkCAwEAAaOB2jCB1zAOBgNVHQ8BAf8EBAMCBaAwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFNO0cA/7/yBl\nHNuQk0pPUs3s6wa6MIGEBgNVHREEfTB7gglsb2NhbGhvc3SCCmt1YmVybmV0ZXOC\nEmt1YmVybmV0ZXMuZGVmYXVsdIIWa3ViZXJuZXRlcy5kZWZhdWx0LnN2Y4Ika3Vi\nZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FshwSsHwbchwR/AAABhwQK\nKwABMA0GCSqGSIb3DQEBCwUAA4IBAQB6QQXAJrtOXhjHHVHvVaN/agSQdliYPE7f\nsCaM71X0kXQ91FsoYNF97DEqDIyQ9GaAo9X5l/ygE4lMzqU/ucAGcjK0aQxGR8qk\n7DAlq6NHb4OWlNok8BZrYFnqEixGW9fusBEtQVgYA9kwKAPMwUicSpLKQKB7jiNi\nWU1GG+2wqKfFE8URmBvDRyxuaBK/6dvyrH52cg35abdS0LTf9mSlsUYhV2OxevVw\nzlJQxXHT+Iq2iKBSdEpLwdxqY6eSZZDhPSAxUQNP80zh4HQB7VAhnE2minSleGY9\nXmuybPGkMqlQqPFwH3nGMKezkeJQCDuuThPuBLrJuJgI7lCJGjSK\n-----END CERTIFICATE-----\n", "keyPEM": "-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAmNfKI7zx1Pv2dllkb9Tih8Opvz9eqrfDAgB2UxKWRheMVNYG\nd7Y6A7eCTehG88tcrzRLpco6HTmc3je/jRoF/FpqtanoC8bd5lLiQ/d59j/du5na\n4iKIOcAuz6WiDJFX3zvIqxBjXY7MbZwly5sOoM1wGq8MYBAU9SqoNg2p15bkkOaU\ntS2m6I96gP7wIcD+t+a5NfrX9t2099fpi2TKzxu2Gk7v6A/FIUsL1XgklGM+mLFu\nXr8yRHpTE8zv5cU0px0LDk+CIUnIQCNdGL/q2zfsGqwTDTcc4/qoavdR84Ctmewy\njmcfUtbnmehYSDeWaVs0uj0iAzr+AG2ugUtNeQIDAQABAoIBAHON0dmrI/quc+uO\nMg0KmimimFdrBZt0Sw7cYpjz2IEtlH8fQMyJDNt6hh14mwv+mBguJXM2rTEjOaIX\n6841+oiLo1mtFy6wL1vPFhnkpGS0bGNFMuL80Jk43ytGQnnV+OVhQZlzTmyRZaUJ\nBNomZKzWJQdHiMen4PBqS7pyIhJHa2/snLQsHG64zHHeXdNOPmwSQTGFCiAmvnpW\nmk0GPUGTFwc1lcft4eq4sC+46pyqjpjk01Vd+h7R14RQ8cLCErx+itHf2UsOt/km\nmf7y0WgGD82W5lWAZpCnNmISL2yIoVJIIKEaZidAXYOthqGjT2jjkvwEP/ORIfQK\nT9X7PrECgYEAyAzBTDy1oxvU2SAtcc6GgPRHg2ih3Kvrg8am8/zb9zP/lOBnw7Pn\nBXwufuIfevKQ2Lc5LwBQoM+Eh5C+L89WK3KT+2wfOfltRiUwbZ5pfLBsIxeTZ0pw\n+7tbvWwRK/u3Ge1N3LhH93E4Vqbuuk1In3g8TCLCWr3FIXCQQUuYVfsCgYEAw5cY\nzA1efPmxlSZ7ZaPpUt5XM014au3Gh70+qHNlaZtQlD7xS1dA0ODDYP13pptI/O/7\nFopiK7XANugDP7Ty/GYw8PY6D8L3QZA9lqTTDKrEjX5RlnjQW/iU9iYvCFFQ2jH0\nESIuPxTmxauDnkYb/gJHikqFMdSX3w59Pmsl9BsCgYEAiwWSL1DhSYDF4j4iVryX\nbHZWXFQSaDBxcxpSW6yVkK1qKCPq+G3FVmJ+TV8HUYHQd0qdSrSFU7vi9fL4uHD2\nCSuO+2KgMMHN1rlxdjxoQma4P4ravSVWbxo9Ht5C8LX1AOeQ/Jp0KNldtZo8vOuI\nVIpSHPbq6fSHUj3PghDuxJECgYAA+dUG1548E2bebqW4+Rtl7XQT7nQGXI9cCAaz\nAnhkEYFSbAn6LUJGiIiRCFK7gxTXJj9jemdI/owp+fhiLf30YnImEaRyha+EJTsZ\ncFMZQhTe+91eWdX4T4I2xDQB353+qLcmCryeVfVc0SFD/eeP2eUPfJWzjPMBCup3\nEEPNNwKBgQCCVBw5PBtJSdKbvmL8yM2L1Yy2vlYgPZHdQNRYQKnPHbYYlR+jWBEi\n0AGEqZFOhMohW4CtxMm0rqYdiebU3YJiTVJnL8mCC3ipLjnTxLQCjUhmJpiNS9L7\nZR40/2jbzzGaeh+EkVUt7/Fq+Ebm4yAhI4UfLWnm4UVQAS/tC1svkg==\n-----END RSA PRIVATE KEY-----\n", "config": "", "name": "kube-etcd-172-31-6-220", diff --git a/infrastructure/rancher-cluster.yml b/infrastructure/rancher-cluster.yml index 685bf51..17fecc8 100644 --- a/infrastructure/rancher-cluster.yml +++ b/infrastructure/rancher-cluster.yml @@ -1,5 +1,5 @@ nodes: - - address: 44.203.109.17 + - address: 172.31.6.220 internal_address: 172.31.6.220 user: ubuntu role: From e07a7a42285f2398bb67f731881ad9eabab18a98 Mon Sep 17 00:00:00 2001 From: skoc10 Date: Fri, 18 Mar 2022 21:13:05 +0000 Subject: [PATCH 02/14] added jenkinsfile petclinic-staging for release branch --- .../build-staging-docker-images-for-ecr.sh | 10 ++ jenkins/jenkinsfile-petclinic-staging | 91 +++++++++++++++++++ ...pare-tags-ecr-for-staging-docker-images.sh | 18 ++++ jenkins/push-staging-docker-images-to-ecr.sh | 11 +++ k8s/petclinic_chart/values-template.yaml | 2 +- 5 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 jenkins/build-staging-docker-images-for-ecr.sh create mode 100644 jenkins/jenkinsfile-petclinic-staging create mode 100644 jenkins/prepare-tags-ecr-for-staging-docker-images.sh create mode 100644 jenkins/push-staging-docker-images-to-ecr.sh diff --git a/jenkins/build-staging-docker-images-for-ecr.sh b/jenkins/build-staging-docker-images-for-ecr.sh new file mode 100644 index 0000000..908ae67 --- /dev/null +++ b/jenkins/build-staging-docker-images-for-ecr.sh @@ -0,0 +1,10 @@ +docker build --force-rm -t "${IMAGE_TAG_ADMIN_SERVER}" "${WORKSPACE}/spring-petclinic-admin-server" +docker build --force-rm -t "${IMAGE_TAG_API_GATEWAY}" "${WORKSPACE}/spring-petclinic-api-gateway" +docker build --force-rm -t "${IMAGE_TAG_CONFIG_SERVER}" "${WORKSPACE}/spring-petclinic-config-server" +docker build --force-rm -t "${IMAGE_TAG_CUSTOMERS_SERVICE}" "${WORKSPACE}/spring-petclinic-customers-service" +docker build --force-rm -t "${IMAGE_TAG_DISCOVERY_SERVER}" "${WORKSPACE}/spring-petclinic-discovery-server" +docker build --force-rm -t "${IMAGE_TAG_HYSTRIX_DASHBOARD}" "${WORKSPACE}/spring-petclinic-hystrix-dashboard" +docker build --force-rm -t "${IMAGE_TAG_VETS_SERVICE}" "${WORKSPACE}/spring-petclinic-vets-service" +docker build --force-rm -t "${IMAGE_TAG_VISITS_SERVICE}" "${WORKSPACE}/spring-petclinic-visits-service" +docker build --force-rm -t "${IMAGE_TAG_GRAFANA_SERVICE}" "${WORKSPACE}/docker/grafana" +docker build --force-rm -t "${IMAGE_TAG_PROMETHEUS_SERVICE}" "${WORKSPACE}/docker/prometheus" diff --git a/jenkins/jenkinsfile-petclinic-staging b/jenkins/jenkinsfile-petclinic-staging new file mode 100644 index 0000000..664217b --- /dev/null +++ b/jenkins/jenkinsfile-petclinic-staging @@ -0,0 +1,91 @@ +pipeline { + agent any + environment { + PATH=sh(script:"echo $PATH:/usr/local/bin", returnStdout:true).trim() + APP_NAME="petclinic" + APP_REPO_NAME="clarusway-repo/petclinic-app-staging" + AWS_ACCOUNT_ID=sh(script:'export PATH="$PATH:/usr/local/bin" && aws sts get-caller-identity --query Account --output text', returnStdout:true).trim() + AWS_REGION="us-east-1" + ECR_REGISTRY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com" + RANCHER_URL="https://rancher.cloudevops.link" + // Get the project-id from Rancher UI (petclinic-cluster-staging namespace, View in API, copy projectId ) + RANCHER_CONTEXT="c-ggrt9:p-sn29v" + //First part of projectID + CLUSTERID="c-ggrt9" + RANCHER_CREDS=credentials('rancher-petclinic-credentials') + } + stages { + stage('Package Application') { + steps { + echo 'Packaging the app into jars with maven' + sh ". ./jenkins/package-with-maven-container.sh" + } + } + stage('Prepare Tags for Staging Docker Images') { + steps { + echo 'Preparing Tags for Staging Docker Images' + script { + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-admin-server/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_ADMIN_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:admin-server-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-api-gateway/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_API_GATEWAY="${ECR_REGISTRY}/${APP_REPO_NAME}:api-gateway-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-config-server/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_CONFIG_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:config-server-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-customers-service/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_CUSTOMERS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:customers-service-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-discovery-server/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_DISCOVERY_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:discovery-server-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-hystrix-dashboard/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_HYSTRIX_DASHBOARD="${ECR_REGISTRY}/${APP_REPO_NAME}:hystrix-dashboard-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-vets-service/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_VETS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:vets-service-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-visits-service/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_VISITS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:visits-service-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" + env.IMAGE_TAG_GRAFANA_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:grafana-service" + env.IMAGE_TAG_PROMETHEUS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:prometheus-service" + } + } + } + stage('Build App Staging Docker Images') { + steps { + echo 'Building App Staging Images' + sh ". ./jenkins/build-staging-docker-images-for-ecr.sh" + sh 'docker image ls' + } + } + stage('Push Images to ECR Repo') { + steps { + echo "Pushing ${APP_NAME} App Images to ECR Repo" + sh ". ./jenkins/push-staging-docker-images-to-ecr.sh" + } + } + stage('Deploy App on Petclinic Kubernetes Cluster'){ + steps { + echo 'Deploying App on K8s Cluster' + sh "rancher login $RANCHER_URL --context $RANCHER_CONTEXT --token $RANCHER_CREDS_USR:$RANCHER_CREDS_PSW" + sh "envsubst < k8s/petclinic_chart/values-template.yaml > k8s/petclinic_chart/values.yaml" + sh "sed -i s/HELM_VERSION/${BUILD_NUMBER}/ k8s/petclinic_chart/Chart.yaml" + sh "rancher kubectl delete secret regcred -n petclinic-staging-ns || true" + sh """ + rancher kubectl create secret generic regcred -n petclinic-staging-ns \ + --from-file=.dockerconfigjson=$JENKINS_HOME/.docker/config.json \ + --type=kubernetes.io/dockerconfigjson + """ + sh "rm -f k8s/config" + sh "rancher cluster kf $CLUSTERID > k8s/config" + sh "chmod 400 k8s/config" + sh "helm repo add stable-petclinic s3://petclinic-helm-charts/stable/myapp/" + sh "helm package k8s/petclinic_chart" + sh "helm s3 push petclinic_chart-${BUILD_NUMBER}.tgz stable-petclinic" + sh "helm repo update" + sh "AWS_REGION=$AWS_REGION helm upgrade --install petclinic-app-release stable-petclinic/petclinic_chart --version ${BUILD_NUMBER} --namespace petclinic-staging-ns --kubeconfig k8s/config" + } + } + } + post { + always { + echo 'Deleting all local images' + sh 'docker image prune -af' + } + } +} diff --git a/jenkins/prepare-tags-ecr-for-staging-docker-images.sh b/jenkins/prepare-tags-ecr-for-staging-docker-images.sh new file mode 100644 index 0000000..7887e14 --- /dev/null +++ b/jenkins/prepare-tags-ecr-for-staging-docker-images.sh @@ -0,0 +1,18 @@ +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-admin-server/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_ADMIN_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:admin-server-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-api-gateway/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_API_GATEWAY="${ECR_REGISTRY}/${APP_REPO_NAME}:api-gateway-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-config-server/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_CONFIG_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:config-server-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-customers-service/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_CUSTOMERS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:customers-service-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-discovery-server/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_DISCOVERY_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:discovery-server-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-hystrix-dashboard/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_HYSTRIX_DASHBOARD="${ECR_REGISTRY}/${APP_REPO_NAME}:hystrix-dashboard-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-vets-service/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_VETS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:vets-service-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-visits-service/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_VISITS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:visits-service-staging-v${MVN_VERSION}-b${BUILD_NUMBER}" +export IMAGE_TAG_GRAFANA_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:grafana-service" +export IMAGE_TAG_PROMETHEUS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:prometheus-service" diff --git a/jenkins/push-staging-docker-images-to-ecr.sh b/jenkins/push-staging-docker-images-to-ecr.sh new file mode 100644 index 0000000..d9d82b0 --- /dev/null +++ b/jenkins/push-staging-docker-images-to-ecr.sh @@ -0,0 +1,11 @@ +aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${ECR_REGISTRY} +docker push "${IMAGE_TAG_ADMIN_SERVER}" +docker push "${IMAGE_TAG_API_GATEWAY}" +docker push "${IMAGE_TAG_CONFIG_SERVER}" +docker push "${IMAGE_TAG_CUSTOMERS_SERVICE}" +docker push "${IMAGE_TAG_DISCOVERY_SERVER}" +docker push "${IMAGE_TAG_HYSTRIX_DASHBOARD}" +docker push "${IMAGE_TAG_VETS_SERVICE}" +docker push "${IMAGE_TAG_VISITS_SERVICE}" +docker push "${IMAGE_TAG_GRAFANA_SERVICE}" +docker push "${IMAGE_TAG_PROMETHEUS_SERVICE}" diff --git a/k8s/petclinic_chart/values-template.yaml b/k8s/petclinic_chart/values-template.yaml index 2e051da..b4b10eb 100644 --- a/k8s/petclinic_chart/values-template.yaml +++ b/k8s/petclinic_chart/values-template.yaml @@ -8,4 +8,4 @@ IMAGE_TAG_ADMIN_SERVER: "${IMAGE_TAG_ADMIN_SERVER}" IMAGE_TAG_HYSTRIX_DASHBOARD: "${IMAGE_TAG_HYSTRIX_DASHBOARD}" IMAGE_TAG_GRAFANA_SERVICE: "${IMAGE_TAG_GRAFANA_SERVICE}" IMAGE_TAG_PROMETHEUS_SERVICE: "${IMAGE_TAG_PROMETHEUS_SERVICE}" -DNS_NAME: "cloudevops.link" +DNS_NAME: "pc-stage.cloudevops.link" From 5261caabadb8f9b84e4a7620a3d039291ef51fce Mon Sep 17 00:00:00 2001 From: selman koc <64414348+skoc10@users.noreply.github.com> Date: Sat, 19 Mar 2022 00:21:44 +0300 Subject: [PATCH 03/14] Update jenkinsfile-petclinic-staging --- jenkins/jenkinsfile-petclinic-staging | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jenkins/jenkinsfile-petclinic-staging b/jenkins/jenkinsfile-petclinic-staging index 664217b..b61a5e4 100644 --- a/jenkins/jenkinsfile-petclinic-staging +++ b/jenkins/jenkinsfile-petclinic-staging @@ -74,7 +74,7 @@ pipeline { sh "rm -f k8s/config" sh "rancher cluster kf $CLUSTERID > k8s/config" sh "chmod 400 k8s/config" - sh "helm repo add stable-petclinic s3://petclinic-helm-charts/stable/myapp/" + sh "helm repo add stable-petclinic s3://skoc-petclinic-helmchart/stable/myapp/" sh "helm package k8s/petclinic_chart" sh "helm s3 push petclinic_chart-${BUILD_NUMBER}.tgz stable-petclinic" sh "helm repo update" From 1801fc0af0fd7b5b1b7b7387d1bfeac700a3a7df Mon Sep 17 00:00:00 2001 From: selman koc <64414348+skoc10@users.noreply.github.com> Date: Sat, 19 Mar 2022 01:43:28 +0300 Subject: [PATCH 04/14] Update Chart.yaml --- k8s/petclinic_chart/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/petclinic_chart/Chart.yaml b/k8s/petclinic_chart/Chart.yaml index f956ed4..e9cc542 100644 --- a/k8s/petclinic_chart/Chart.yaml +++ b/k8s/petclinic_chart/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.1.2 +version: 1.1.3 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to From e642aadb22876c25661713bbae289f9c5eb7332f Mon Sep 17 00:00:00 2001 From: selman koc <64414348+skoc10@users.noreply.github.com> Date: Sat, 19 Mar 2022 01:50:48 +0300 Subject: [PATCH 05/14] Update Chart.yaml --- k8s/petclinic_chart/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/petclinic_chart/Chart.yaml b/k8s/petclinic_chart/Chart.yaml index e9cc542..5f77e81 100644 --- a/k8s/petclinic_chart/Chart.yaml +++ b/k8s/petclinic_chart/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.1.3 +version: HELM_VERSION # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to From 1a5eff169dfd2129c5988a9802dbefce1c916581 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Sat, 19 Mar 2022 02:05:41 +0300 Subject: [PATCH 06/14] temlate --- .DS_Store | Bin 8196 -> 10244 bytes .../templates/admin-server-deployment.yaml | 12 ++++++------ .../templates/admin-server-service.yaml | 2 +- .../templates/api-gateway-deployment.yaml | 12 ++++++------ .../templates/api-gateway-ingress.yaml | 2 +- .../templates/api-gateway-service.yaml | 2 +- .../templates/config-server-deployment.yaml | 4 ++-- .../templates/config-server-service.yaml | 2 +- .../customers-service-deployment.yaml | 12 ++++++------ .../templates/customers-service-service.yaml | 2 +- .../discovery-server-deployment.yaml | 10 +++++----- .../templates/discovery-server-service.yaml | 2 +- .../templates/grafana-server-deployment.yaml | 12 ++++++------ .../templates/grafana-server-service.yaml | 2 +- .../hystrix-dashboard-deployment.yaml | 10 +++++----- .../templates/hystrix-dashboard-service.yaml | 2 +- .../templates/mysql-server-deployment.yaml | 12 ++++++------ .../templates/mysql-server-service.yaml | 2 +- .../prometheus-server-deployment.yaml | 12 ++++++------ .../templates/prometheus-server-service.yaml | 2 +- .../templates/tracing-server-deployment.yaml | 12 ++++++------ .../templates/tracing-server-service.yaml | 2 +- .../templates/vets-service-deployment.yaml | 10 +++++----- .../templates/vets-service-service.yaml | 2 +- .../templates/visits-service-deployment.yaml | 12 ++++++------ .../templates/visits-service-service.yaml | 2 +- 26 files changed, 78 insertions(+), 78 deletions(-) diff --git a/.DS_Store b/.DS_Store index 4ac0bf57054fc33c3e5934ffaf6fc73d24ee5419..65860396f3d7f74e8fb3d249549c7dff2392016f 100644 GIT binary patch delta 750 zcmbVKO-lk%6unQ45mFi}MQQ}ywP@7HBB+H0EyPXHDq1-zrcLVjQM4%+?xKYa^ecjp z`2nr^C(+Vvw6b$YEj3p?xZJtJIp^Mc-fJh@M?oSI2hH3DQ5c_Y1ZUaPF#?@v#2-N+ zP!nmSQ$D3vvYOsCo}^C8Ye{aG`;HM3WvEPbDvqNn8Ve!zA#vNc4=SP+pqjwylp__9 zrz<;GC`%WpYN(2I3C#kkIzQ~XuttCM^KO0(Ht%(mk4n>a0DyD~N|vUih1Ito)w zoWSi&qikn;W6lmykG__)y_HxGClaRcC#B(U>)n?YF)tR)^If8A5%<9BmSCCoN1Z+H zna_ckb+V+m(m`t2*UKIA9YH9no@ df^xj<7(B!^2H^3lBwRtJ gZY=!HJegl5kOOEY$S#J-@jO#EzZWlJnpid!06-BS3IG5A diff --git a/k8s/petclinic_chart/templates/admin-server-deployment.yaml b/k8s/petclinic_chart/templates/admin-server-deployment.yaml index bc630a4..c7f9640 100644 --- a/k8s/petclinic_chart/templates/admin-server-deployment.yaml +++ b/k8s/petclinic_chart/templates/admin-server-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -31,10 +31,10 @@ spec: ports: - containerPort: 9090 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/admin-server-service.yaml b/k8s/petclinic_chart/templates/admin-server-service.yaml index 29c6caa..fff54bb 100644 --- a/k8s/petclinic_chart/templates/admin-server-service.yaml +++ b/k8s/petclinic_chart/templates/admin-server-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/api-gateway-deployment.yaml b/k8s/petclinic_chart/templates/api-gateway-deployment.yaml index 397b9cd..279d9cd 100644 --- a/k8s/petclinic_chart/templates/api-gateway-deployment.yaml +++ b/k8s/petclinic_chart/templates/api-gateway-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.service.expose: '{{ .Values.DNS_NAME }}' kompose.service.type: nodeport @@ -20,7 +20,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.service.expose: '{{ .Values.DNS_NAME }}' kompose.service.type: nodeport @@ -35,10 +35,10 @@ spec: ports: - containerPort: 8080 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/api-gateway-ingress.yaml b/k8s/petclinic_chart/templates/api-gateway-ingress.yaml index 07e5be8..f791f86 100644 --- a/k8s/petclinic_chart/templates/api-gateway-ingress.yaml +++ b/k8s/petclinic_chart/templates/api-gateway-ingress.yaml @@ -2,7 +2,7 @@ apiVersion: networking.k8s.io/v1 kind: Ingress metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.service.expose: '{{ .Values.DNS_NAME }}' kompose.service.type: nodeport diff --git a/k8s/petclinic_chart/templates/api-gateway-service.yaml b/k8s/petclinic_chart/templates/api-gateway-service.yaml index f5fdee5..c36a979 100644 --- a/k8s/petclinic_chart/templates/api-gateway-service.yaml +++ b/k8s/petclinic_chart/templates/api-gateway-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.service.expose: '{{ .Values.DNS_NAME }}' kompose.service.type: nodeport diff --git a/k8s/petclinic_chart/templates/config-server-deployment.yaml b/k8s/petclinic_chart/templates/config-server-deployment.yaml index 2780e33..17b79e0 100644 --- a/k8s/petclinic_chart/templates/config-server-deployment.yaml +++ b/k8s/petclinic_chart/templates/config-server-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/config-server-service.yaml b/k8s/petclinic_chart/templates/config-server-service.yaml index 80aef2d..35b7c47 100644 --- a/k8s/petclinic_chart/templates/config-server-service.yaml +++ b/k8s/petclinic_chart/templates/config-server-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/customers-service-deployment.yaml b/k8s/petclinic_chart/templates/customers-service-deployment.yaml index b723b56..b610691 100644 --- a/k8s/petclinic_chart/templates/customers-service-deployment.yaml +++ b/k8s/petclinic_chart/templates/customers-service-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -31,10 +31,10 @@ spec: ports: - containerPort: 8081 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/customers-service-service.yaml b/k8s/petclinic_chart/templates/customers-service-service.yaml index 0340d08..88d967b 100644 --- a/k8s/petclinic_chart/templates/customers-service-service.yaml +++ b/k8s/petclinic_chart/templates/customers-service-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/discovery-server-deployment.yaml b/k8s/petclinic_chart/templates/discovery-server-deployment.yaml index 32eb8c0..6817076 100644 --- a/k8s/petclinic_chart/templates/discovery-server-deployment.yaml +++ b/k8s/petclinic_chart/templates/discovery-server-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -32,9 +32,9 @@ spec: - containerPort: 8761 resources: {} initContainers: - - name: init-config-server - image: busybox - command: ['sh', '-c', 'until nc -z config-server:8888; do echo waiting for config-server; sleep 2; done;'] + - name: init-config-server + image: busybox + command: ['sh', '-c', 'until nc -z config-server:8888; do echo waiting for config-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/discovery-server-service.yaml b/k8s/petclinic_chart/templates/discovery-server-service.yaml index ede45dc..86a4d04 100644 --- a/k8s/petclinic_chart/templates/discovery-server-service.yaml +++ b/k8s/petclinic_chart/templates/discovery-server-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/grafana-server-deployment.yaml b/k8s/petclinic_chart/templates/grafana-server-deployment.yaml index 79debc8..82393bc 100644 --- a/k8s/petclinic_chart/templates/grafana-server-deployment.yaml +++ b/k8s/petclinic_chart/templates/grafana-server-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -31,10 +31,10 @@ spec: ports: - containerPort: 3000 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/grafana-server-service.yaml b/k8s/petclinic_chart/templates/grafana-server-service.yaml index 45acbb2..8aeaf02 100644 --- a/k8s/petclinic_chart/templates/grafana-server-service.yaml +++ b/k8s/petclinic_chart/templates/grafana-server-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/hystrix-dashboard-deployment.yaml b/k8s/petclinic_chart/templates/hystrix-dashboard-deployment.yaml index b56a320..7791e46 100644 --- a/k8s/petclinic_chart/templates/hystrix-dashboard-deployment.yaml +++ b/k8s/petclinic_chart/templates/hystrix-dashboard-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -32,9 +32,9 @@ spec: - containerPort: 7979 resources: {} initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/hystrix-dashboard-service.yaml b/k8s/petclinic_chart/templates/hystrix-dashboard-service.yaml index 89463b7..6be7d1d 100644 --- a/k8s/petclinic_chart/templates/hystrix-dashboard-service.yaml +++ b/k8s/petclinic_chart/templates/hystrix-dashboard-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/mysql-server-deployment.yaml b/k8s/petclinic_chart/templates/mysql-server-deployment.yaml index 783b4e6..092f388 100644 --- a/k8s/petclinic_chart/templates/mysql-server-deployment.yaml +++ b/k8s/petclinic_chart/templates/mysql-server-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null labels: @@ -17,7 +17,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null labels: @@ -34,9 +34,9 @@ spec: ports: - containerPort: 3306 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] restartPolicy: Always status: {} diff --git a/k8s/petclinic_chart/templates/mysql-server-service.yaml b/k8s/petclinic_chart/templates/mysql-server-service.yaml index 928ea39..45f53bd 100644 --- a/k8s/petclinic_chart/templates/mysql-server-service.yaml +++ b/k8s/petclinic_chart/templates/mysql-server-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null labels: diff --git a/k8s/petclinic_chart/templates/prometheus-server-deployment.yaml b/k8s/petclinic_chart/templates/prometheus-server-deployment.yaml index daec58f..63b4120 100644 --- a/k8s/petclinic_chart/templates/prometheus-server-deployment.yaml +++ b/k8s/petclinic_chart/templates/prometheus-server-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -31,10 +31,10 @@ spec: ports: - containerPort: 9090 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/prometheus-server-service.yaml b/k8s/petclinic_chart/templates/prometheus-server-service.yaml index c30d807..f574d5a 100644 --- a/k8s/petclinic_chart/templates/prometheus-server-service.yaml +++ b/k8s/petclinic_chart/templates/prometheus-server-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/tracing-server-deployment.yaml b/k8s/petclinic_chart/templates/tracing-server-deployment.yaml index ca9cf53..a3eb415 100644 --- a/k8s/petclinic_chart/templates/tracing-server-deployment.yaml +++ b/k8s/petclinic_chart/templates/tracing-server-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null labels: @@ -17,7 +17,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null labels: @@ -32,9 +32,9 @@ spec: ports: - containerPort: 9411 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] restartPolicy: Always status: {} diff --git a/k8s/petclinic_chart/templates/tracing-server-service.yaml b/k8s/petclinic_chart/templates/tracing-server-service.yaml index 4d30910..3b5a7ad 100644 --- a/k8s/petclinic_chart/templates/tracing-server-service.yaml +++ b/k8s/petclinic_chart/templates/tracing-server-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null labels: diff --git a/k8s/petclinic_chart/templates/vets-service-deployment.yaml b/k8s/petclinic_chart/templates/vets-service-deployment.yaml index a93ea42..936bdff 100644 --- a/k8s/petclinic_chart/templates/vets-service-deployment.yaml +++ b/k8s/petclinic_chart/templates/vets-service-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -32,9 +32,9 @@ spec: - containerPort: 8083 resources: {} initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/vets-service-service.yaml b/k8s/petclinic_chart/templates/vets-service-service.yaml index c84ef13..2c08071 100644 --- a/k8s/petclinic_chart/templates/vets-service-service.yaml +++ b/k8s/petclinic_chart/templates/vets-service-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null diff --git a/k8s/petclinic_chart/templates/visits-service-deployment.yaml b/k8s/petclinic_chart/templates/visits-service-deployment.yaml index e9236e6..608cf97 100644 --- a/k8s/petclinic_chart/templates/visits-service-deployment.yaml +++ b/k8s/petclinic_chart/templates/visits-service-deployment.yaml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -18,7 +18,7 @@ spec: template: metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null @@ -31,10 +31,10 @@ spec: ports: - containerPort: 8082 resources: {} - initContainers: - - name: init-discovery-server - image: busybox - command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] + initContainers: + - name: init-discovery-server + image: busybox + command: ['sh', '-c', 'until nc -z discovery-server:8761; do echo waiting for discovery-server; sleep 2; done;'] imagePullSecrets: - name: regcred restartPolicy: Always diff --git a/k8s/petclinic_chart/templates/visits-service-service.yaml b/k8s/petclinic_chart/templates/visits-service-service.yaml index 483265b..9053737 100644 --- a/k8s/petclinic_chart/templates/visits-service-service.yaml +++ b/k8s/petclinic_chart/templates/visits-service-service.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates + kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ kompose.image-pull-secret: regcred kompose.version: 1.26.1 (a9d05d509) creationTimestamp: null From aeb79818d1760cbfe38a807ab8e02bb06019bc80 Mon Sep 17 00:00:00 2001 From: skoc10 Date: Sat, 19 Mar 2022 09:37:38 +0000 Subject: [PATCH 07/14] added jenkinsfile petclinic-production for main branch --- jenkins/build-prod-docker-images-for-ecr.sh | 10 ++ jenkins/jenkinsfile-petclinic-prod | 91 +++++++++++++++++++ ...prepare-tags-ecr-for-prod-docker-images.sh | 18 ++++ jenkins/push-prod-docker-images-to-ecr.sh | 11 +++ 4 files changed, 130 insertions(+) create mode 100644 jenkins/build-prod-docker-images-for-ecr.sh create mode 100644 jenkins/jenkinsfile-petclinic-prod create mode 100644 jenkins/prepare-tags-ecr-for-prod-docker-images.sh create mode 100644 jenkins/push-prod-docker-images-to-ecr.sh diff --git a/jenkins/build-prod-docker-images-for-ecr.sh b/jenkins/build-prod-docker-images-for-ecr.sh new file mode 100644 index 0000000..908ae67 --- /dev/null +++ b/jenkins/build-prod-docker-images-for-ecr.sh @@ -0,0 +1,10 @@ +docker build --force-rm -t "${IMAGE_TAG_ADMIN_SERVER}" "${WORKSPACE}/spring-petclinic-admin-server" +docker build --force-rm -t "${IMAGE_TAG_API_GATEWAY}" "${WORKSPACE}/spring-petclinic-api-gateway" +docker build --force-rm -t "${IMAGE_TAG_CONFIG_SERVER}" "${WORKSPACE}/spring-petclinic-config-server" +docker build --force-rm -t "${IMAGE_TAG_CUSTOMERS_SERVICE}" "${WORKSPACE}/spring-petclinic-customers-service" +docker build --force-rm -t "${IMAGE_TAG_DISCOVERY_SERVER}" "${WORKSPACE}/spring-petclinic-discovery-server" +docker build --force-rm -t "${IMAGE_TAG_HYSTRIX_DASHBOARD}" "${WORKSPACE}/spring-petclinic-hystrix-dashboard" +docker build --force-rm -t "${IMAGE_TAG_VETS_SERVICE}" "${WORKSPACE}/spring-petclinic-vets-service" +docker build --force-rm -t "${IMAGE_TAG_VISITS_SERVICE}" "${WORKSPACE}/spring-petclinic-visits-service" +docker build --force-rm -t "${IMAGE_TAG_GRAFANA_SERVICE}" "${WORKSPACE}/docker/grafana" +docker build --force-rm -t "${IMAGE_TAG_PROMETHEUS_SERVICE}" "${WORKSPACE}/docker/prometheus" diff --git a/jenkins/jenkinsfile-petclinic-prod b/jenkins/jenkinsfile-petclinic-prod new file mode 100644 index 0000000..7fdbc40 --- /dev/null +++ b/jenkins/jenkinsfile-petclinic-prod @@ -0,0 +1,91 @@ +pipeline { + agent any + environment { + PATH=sh(script:"echo $PATH:/usr/local/bin", returnStdout:true).trim() + APP_NAME="petclinic" + APP_REPO_NAME="clarusway-repo/petclinic-app-prod" + AWS_ACCOUNT_ID=sh(script:'export PATH="$PATH:/usr/local/bin" && aws sts get-caller-identity --query Account --output text', returnStdout:true).trim() + AWS_REGION="us-east-1" + ECR_REGISTRY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com" + RANCHER_URL="https://rancher.clarusway.us" + // Get the project-id from Rancher UI (petclinic-cluster-staging namespace, View in API, copy projectId ) + RANCHER_CONTEXT="petclinic-cluster:project-id" + //First part of projectID + CLUSTERID="petclinic-cluster" + RANCHER_CREDS=credentials('rancher-petclinic-credentials') + } + stages { + stage('Package Application') { + steps { + echo 'Packaging the app into jars with maven' + sh ". ./jenkins/package-with-maven-container.sh" + } + } + stage('Prepare Tags for Production Docker Images') { + steps { + echo 'Preparing Tags for Production Docker Images' + script { + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-admin-server/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_ADMIN_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:admin-server-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-api-gateway/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_API_GATEWAY="${ECR_REGISTRY}/${APP_REPO_NAME}:api-gateway-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-config-server/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_CONFIG_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:config-server-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-customers-service/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_CUSTOMERS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:customers-service-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-discovery-server/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_DISCOVERY_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:discovery-server-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-hystrix-dashboard/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_HYSTRIX_DASHBOARD="${ECR_REGISTRY}/${APP_REPO_NAME}:hystrix-dashboard-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-vets-service/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_VETS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:vets-service-v${MVN_VERSION}-b${BUILD_NUMBER}" + MVN_VERSION=sh(script:'. ${WORKSPACE}/spring-petclinic-visits-service/target/maven-archiver/pom.properties && echo $version', returnStdout:true).trim() + env.IMAGE_TAG_VISITS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:visits-service-v${MVN_VERSION}-b${BUILD_NUMBER}" + env.IMAGE_TAG_GRAFANA_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:grafana-service" + env.IMAGE_TAG_PROMETHEUS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:prometheus-service" + } + } + } + stage('Build App Production Docker Images') { + steps { + echo 'Building App Production Images' + sh ". ./jenkins/build-prod-docker-images-for-ecr.sh" + sh 'docker image ls' + } + } + stage('Push Images to ECR Repo') { + steps { + echo "Pushing ${APP_NAME} App Images to ECR Repo" + sh ". ./jenkins/push-prod-docker-images-to-ecr.sh" + } + } + stage('Deploy App on Petclinic Kubernetes Cluster'){ + steps { + echo 'Deploying App on K8s Cluster' + sh "rancher login $RANCHER_URL --context $RANCHER_CONTEXT --token $RANCHER_CREDS_USR:$RANCHER_CREDS_PSW" + sh "envsubst < k8s/petclinic_chart/values-template.yaml > k8s/petclinic_chart/values.yaml" + sh "sed -i s/HELM_VERSION/${BUILD_NUMBER}/ k8s/petclinic_chart/Chart.yaml" + sh "rancher kubectl delete secret regcred -n petclinic-prod-ns || true" + sh """ + rancher kubectl create secret generic regcred -n petclinic-prod-ns \ + --from-file=.dockerconfigjson=$JENKINS_HOME/.docker/config.json \ + --type=kubernetes.io/dockerconfigjson + """ + sh "rm -f k8s/config" + sh "rancher cluster kf $CLUSTERID > k8s/config" + sh "chmod 400 k8s/config" + sh "helm repo add stable-petclinic s3://petclinic-helm-charts/stable/myapp/" + sh "helm package k8s/petclinic_chart" + sh "helm s3 push petclinic_chart-${BUILD_NUMBER}.tgz stable-petclinic" + sh "helm repo update" + sh "AWS_REGION=$AWS_REGION helm upgrade --install petclinic-app-release stable-petclinic/petclinic_chart --version ${BUILD_NUMBER} --namespace petclinic-prod-ns --kubeconfig k8s/config" + } + } + } + post { + always { + echo 'Deleting all local images' + sh 'docker image prune -af' + } + } +} diff --git a/jenkins/prepare-tags-ecr-for-prod-docker-images.sh b/jenkins/prepare-tags-ecr-for-prod-docker-images.sh new file mode 100644 index 0000000..7fbe249 --- /dev/null +++ b/jenkins/prepare-tags-ecr-for-prod-docker-images.sh @@ -0,0 +1,18 @@ +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-admin-server/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_ADMIN_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:admin-server-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-api-gateway/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_API_GATEWAY="${ECR_REGISTRY}/${APP_REPO_NAME}:api-gateway-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-config-server/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_CONFIG_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:config-server-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-customers-service/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_CUSTOMERS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:customers-service-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-discovery-server/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_DISCOVERY_SERVER="${ECR_REGISTRY}/${APP_REPO_NAME}:discovery-server-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-hystrix-dashboard/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_HYSTRIX_DASHBOARD="${ECR_REGISTRY}/${APP_REPO_NAME}:hystrix-dashboard-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-vets-service/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_VETS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:vets-service-v${MVN_VERSION}-b${BUILD_NUMBER}" +MVN_VERSION=$(. ${WORKSPACE}/spring-petclinic-visits-service/target/maven-archiver/pom.properties && echo $version) +export IMAGE_TAG_VISITS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:visits-service-v${MVN_VERSION}-b${BUILD_NUMBER}" +export IMAGE_TAG_GRAFANA_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:grafana-service" +export IMAGE_TAG_PROMETHEUS_SERVICE="${ECR_REGISTRY}/${APP_REPO_NAME}:prometheus-service" diff --git a/jenkins/push-prod-docker-images-to-ecr.sh b/jenkins/push-prod-docker-images-to-ecr.sh new file mode 100644 index 0000000..d9d82b0 --- /dev/null +++ b/jenkins/push-prod-docker-images-to-ecr.sh @@ -0,0 +1,11 @@ +aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${ECR_REGISTRY} +docker push "${IMAGE_TAG_ADMIN_SERVER}" +docker push "${IMAGE_TAG_API_GATEWAY}" +docker push "${IMAGE_TAG_CONFIG_SERVER}" +docker push "${IMAGE_TAG_CUSTOMERS_SERVICE}" +docker push "${IMAGE_TAG_DISCOVERY_SERVER}" +docker push "${IMAGE_TAG_HYSTRIX_DASHBOARD}" +docker push "${IMAGE_TAG_VETS_SERVICE}" +docker push "${IMAGE_TAG_VISITS_SERVICE}" +docker push "${IMAGE_TAG_GRAFANA_SERVICE}" +docker push "${IMAGE_TAG_PROMETHEUS_SERVICE}" From e2eb8e1aeee0ee5bc2d87234b761ac54f6730a7a Mon Sep 17 00:00:00 2001 From: selmankoc Date: Sat, 19 Mar 2022 12:55:16 +0300 Subject: [PATCH 08/14] jenkins-prod --- jenkins/jenkinsfile-petclinic-prod | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jenkins/jenkinsfile-petclinic-prod b/jenkins/jenkinsfile-petclinic-prod index 7fdbc40..ad5d3cc 100644 --- a/jenkins/jenkinsfile-petclinic-prod +++ b/jenkins/jenkinsfile-petclinic-prod @@ -7,11 +7,11 @@ pipeline { AWS_ACCOUNT_ID=sh(script:'export PATH="$PATH:/usr/local/bin" && aws sts get-caller-identity --query Account --output text', returnStdout:true).trim() AWS_REGION="us-east-1" ECR_REGISTRY="${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com" - RANCHER_URL="https://rancher.clarusway.us" + RANCHER_URL="https://rancher.cloudevops.link" // Get the project-id from Rancher UI (petclinic-cluster-staging namespace, View in API, copy projectId ) - RANCHER_CONTEXT="petclinic-cluster:project-id" + RANCHER_CONTEXT="c-vgs2t:p-pfw9d" //First part of projectID - CLUSTERID="petclinic-cluster" + CLUSTERID="c-vgs2t" RANCHER_CREDS=credentials('rancher-petclinic-credentials') } stages { @@ -74,7 +74,7 @@ pipeline { sh "rm -f k8s/config" sh "rancher cluster kf $CLUSTERID > k8s/config" sh "chmod 400 k8s/config" - sh "helm repo add stable-petclinic s3://petclinic-helm-charts/stable/myapp/" + sh "helm repo add stable-petclinic s3://skoc-petclinic-helmchart/stable/myapp/" sh "helm package k8s/petclinic_chart" sh "helm s3 push petclinic_chart-${BUILD_NUMBER}.tgz stable-petclinic" sh "helm repo update" From 2b3aa6666987f8f139f569bd2262b7ed8c487eb1 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Sat, 19 Mar 2022 13:27:08 +0300 Subject: [PATCH 09/14] prod --- k8s/petclinic_chart/values-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/petclinic_chart/values-template.yaml b/k8s/petclinic_chart/values-template.yaml index b4b10eb..47f3915 100644 --- a/k8s/petclinic_chart/values-template.yaml +++ b/k8s/petclinic_chart/values-template.yaml @@ -8,4 +8,4 @@ IMAGE_TAG_ADMIN_SERVER: "${IMAGE_TAG_ADMIN_SERVER}" IMAGE_TAG_HYSTRIX_DASHBOARD: "${IMAGE_TAG_HYSTRIX_DASHBOARD}" IMAGE_TAG_GRAFANA_SERVICE: "${IMAGE_TAG_GRAFANA_SERVICE}" IMAGE_TAG_PROMETHEUS_SERVICE: "${IMAGE_TAG_PROMETHEUS_SERVICE}" -DNS_NAME: "pc-stage.cloudevops.link" +DNS_NAME: "pc-prod.cloudevops.link" From 25f94703f616819d12005cc3eb96642af74c5a98 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Sat, 19 Mar 2022 14:03:13 +0300 Subject: [PATCH 10/14] jenkins-prod --- k8s/petclinic_chart/values-template.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/petclinic_chart/values-template.yaml b/k8s/petclinic_chart/values-template.yaml index 47f3915..58be873 100644 --- a/k8s/petclinic_chart/values-template.yaml +++ b/k8s/petclinic_chart/values-template.yaml @@ -8,4 +8,4 @@ IMAGE_TAG_ADMIN_SERVER: "${IMAGE_TAG_ADMIN_SERVER}" IMAGE_TAG_HYSTRIX_DASHBOARD: "${IMAGE_TAG_HYSTRIX_DASHBOARD}" IMAGE_TAG_GRAFANA_SERVICE: "${IMAGE_TAG_GRAFANA_SERVICE}" IMAGE_TAG_PROMETHEUS_SERVICE: "${IMAGE_TAG_PROMETHEUS_SERVICE}" -DNS_NAME: "pc-prod.cloudevops.link" +DNS_NAME: "petclinic.cloudevops.link" From bd7d76ae28d6bc1e50ba145993542303b1734a36 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Sat, 19 Mar 2022 14:20:12 +0300 Subject: [PATCH 11/14] jenkins-prod --- .../templates => }/mysql-server-deployment.yaml | 0 .../templates/mysql-server-service.yaml | 13 +++---------- 2 files changed, 3 insertions(+), 10 deletions(-) rename k8s/{petclinic_chart/templates => }/mysql-server-deployment.yaml (100%) diff --git a/k8s/petclinic_chart/templates/mysql-server-deployment.yaml b/k8s/mysql-server-deployment.yaml similarity index 100% rename from k8s/petclinic_chart/templates/mysql-server-deployment.yaml rename to k8s/mysql-server-deployment.yaml diff --git a/k8s/petclinic_chart/templates/mysql-server-service.yaml b/k8s/petclinic_chart/templates/mysql-server-service.yaml index 45f53bd..2d9d755 100644 --- a/k8s/petclinic_chart/templates/mysql-server-service.yaml +++ b/k8s/petclinic_chart/templates/mysql-server-service.yaml @@ -2,18 +2,11 @@ apiVersion: v1 kind: Service metadata: annotations: - kompose.cmd: kompose convert -f docker-compose.yml -o petclinic_chart/templates/ + kompose.cmd: kompose convert -f docker-compose-local-db.yml kompose.version: 1.26.1 (a9d05d509) - creationTimestamp: null labels: io.kompose.service: mysql-server name: mysql-server spec: - ports: - - name: "3306" - port: 3306 - targetPort: 3306 - selector: - io.kompose.service: mysql-server -status: - loadBalancer: {} + type: ExternalName + externalName: petclinicdb.c7mnqunej0lj.us-east-1.rds.amazonaws.com # Change this line with the endpoint of your RDS. \ No newline at end of file From f63a7772bcd1f94858042676f2bd6bc9b138f5af Mon Sep 17 00:00:00 2001 From: selmankoc Date: Sat, 19 Mar 2022 14:38:13 +0300 Subject: [PATCH 12/14] jenkins-prod --- k8s/tls-cluster-issuer-prod.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 k8s/tls-cluster-issuer-prod.yml diff --git a/k8s/tls-cluster-issuer-prod.yml b/k8s/tls-cluster-issuer-prod.yml new file mode 100644 index 0000000..25c4b7c --- /dev/null +++ b/k8s/tls-cluster-issuer-prod.yml @@ -0,0 +1,19 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: letsencrypt-prod + namespace: cert-manager +spec: + acme: + # The ACME server URL + server: https://acme-v02.api.letsencrypt.org/directory + # Email address used for ACME registration + email: callahan@clarusway.com + # Name of a secret used to store the ACME account private key + privateKeySecretRef: + name: letsencrypt-prod + # Enable the HTTP-01 challenge provider + solvers: + - http01: + ingress: + class: nginx \ No newline at end of file From 387272fb33bf4c8d7e28bf0d22e668f20539af32 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Sat, 19 Mar 2022 14:51:46 +0300 Subject: [PATCH 13/14] jenkins-prod --- k8s/tls-cluster-issuer-prod.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/k8s/tls-cluster-issuer-prod.yml b/k8s/tls-cluster-issuer-prod.yml index 25c4b7c..667e7f9 100644 --- a/k8s/tls-cluster-issuer-prod.yml +++ b/k8s/tls-cluster-issuer-prod.yml @@ -8,7 +8,7 @@ spec: # The ACME server URL server: https://acme-v02.api.letsencrypt.org/directory # Email address used for ACME registration - email: callahan@clarusway.com + email: skoc@clarusway.com # Name of a secret used to store the ACME account private key privateKeySecretRef: name: letsencrypt-prod From c1741f60adadba4d3e1857a042b72b9f09811ad4 Mon Sep 17 00:00:00 2001 From: selmankoc Date: Thu, 14 Jul 2022 11:55:20 +0300 Subject: [PATCH 14/14] last added --- .DS_Store | Bin 10244 -> 10244 bytes infrastructure/dev-k8s-terraform/main.tf | 205 ++++++++++++++++++ .../modules/IAM/policy_for_master.json | 143 ++++++++++++ .../modules/IAM/policy_for_worker.json | 136 ++++++++++++ .../dev-k8s-terraform/modules/IAM/roles.tf | 87 ++++++++ infrastructure/qa-k8s-terraform/main.tf | 205 ++++++++++++++++++ .../modules/IAM/policy_for_master.json | 143 ++++++++++++ .../modules/IAM/policy_for_worker.json | 136 ++++++++++++ .../qa-k8s-terraform/modules/IAM/roles.tf | 87 ++++++++ k8s/petclinic_chart/values.yaml | 2 +- 10 files changed, 1143 insertions(+), 1 deletion(-) create mode 100644 infrastructure/dev-k8s-terraform/main.tf create mode 100644 infrastructure/dev-k8s-terraform/modules/IAM/policy_for_master.json create mode 100644 infrastructure/dev-k8s-terraform/modules/IAM/policy_for_worker.json create mode 100644 infrastructure/dev-k8s-terraform/modules/IAM/roles.tf create mode 100644 infrastructure/qa-k8s-terraform/main.tf create mode 100644 infrastructure/qa-k8s-terraform/modules/IAM/policy_for_master.json create mode 100644 infrastructure/qa-k8s-terraform/modules/IAM/policy_for_worker.json create mode 100644 infrastructure/qa-k8s-terraform/modules/IAM/roles.tf diff --git a/.DS_Store b/.DS_Store index 65860396f3d7f74e8fb3d249549c7dff2392016f..cbfccf769397c2698ea5b8e7eeeaca9d318af7cc 100644 GIT binary patch delta 98 zcmZn(XbITREhM}xsURn_xWvHV8Y2@k3o9Et2gl@jLeZL>obdu;)zyXuhB^ucwK@vb zmPQ6T3MR&8wY8iaqRRT#LGjr+xq0~=lLaK?89OH@2q|n%5njx*nN{Hr%VuU#W@Z3Q CUmEKG delta 34 qcmZn(XbITREj0PMaOvb%;_j1^g=9A;2`}c^%&zc@W%GX#W@Z5VFAZY= diff --git a/infrastructure/dev-k8s-terraform/main.tf b/infrastructure/dev-k8s-terraform/main.tf new file mode 100644 index 0000000..40c2ea7 --- /dev/null +++ b/infrastructure/dev-k8s-terraform/main.tf @@ -0,0 +1,205 @@ +provider "aws" { + region = "us-east-1" +} + +module "iam" { + source = "./modules/IAM" +} + +resource "aws_security_group" "matt-kube-mutual-sg" { + name = "kube-mutual-sec-group-for-matt" +} + +resource "aws_security_group" "matt-kube-worker-sg" { + name = "kube-worker-sec-group-for-matt" + ingress { + protocol = "tcp" + from_port = 10250 + to_port = 10250 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 30000 + to_port = 32767 + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + protocol = "tcp" + from_port = 22 + to_port = 22 + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + protocol = "udp" + from_port = 8472 + to_port = 8472 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + + egress{ + protocol = "-1" + from_port = 0 + to_port = 0 + cidr_blocks = ["0.0.0.0/0"] + } + tags = { + Name = "kube-worker-secgroup" + "kubernetes.io/cluster/mattsCluster" = "owned" + } +} + +resource "aws_security_group" "matt-kube-master-sg" { + name = "kube-master-sec-group-for-matt" + + ingress { + protocol = "tcp" + from_port = 22 + to_port = 22 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "tcp" + from_port = 80 + to_port = 80 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "tcp" + from_port = 6443 + to_port = 6443 + cidr_blocks = ["0.0.0.0/0"] + #security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 443 + to_port = 443 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "tcp" + from_port = 2380 + to_port = 2380 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 2379 + to_port = 2379 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 10250 + to_port = 10250 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 10251 + to_port = 10251 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 10252 + to_port = 10252 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 30000 + to_port = 32767 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "udp" + from_port = 8472 + to_port = 8472 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + egress { + protocol = "-1" + from_port = 0 + to_port = 0 + cidr_blocks = ["0.0.0.0/0"] + } + tags = { + Name = "kube-master-secgroup" + } +} + +resource "aws_instance" "kube-master" { + ami = "ami-013f17f36f8b1fefb" + instance_type = "t3a.medium" + iam_instance_profile = module.iam.master_profile_name + vpc_security_group_ids = [aws_security_group.matt-kube-master-sg.id, aws_security_group.matt-kube-mutual-sg.id] + key_name = "mattkey" + subnet_id = "subnet-0b44c52bb4b66253f" # select own subnet_id of us-east-1a + availability_zone = "us-east-1a" + tags = { + Name = "kube-master" + "kubernetes.io/cluster/mattsCluster" = "owned" + Project = "tera-kube-ans" + Role = "master" + Id = "1" + environment = "dev" + } +} + +resource "aws_instance" "worker-1" { + ami = "ami-013f17f36f8b1fefb" + instance_type = "t3a.medium" + iam_instance_profile = module.iam.worker_profile_name + vpc_security_group_ids = [aws_security_group.matt-kube-worker-sg.id, aws_security_group.matt-kube-mutual-sg.id] + key_name = "mattkey" + subnet_id = "subnet-0b44c52bb4b66253f" # select own subnet_id of us-east-1a + availability_zone = "us-east-1a" + tags = { + Name = "worker-1" + "kubernetes.io/cluster/mattsCluster" = "owned" + Project = "tera-kube-ans" + Role = "worker" + Id = "1" + environment = "dev" + } +} + +resource "aws_instance" "worker-2" { + ami = "ami-013f17f36f8b1fefb" + instance_type = "t3a.medium" + iam_instance_profile = module.iam.worker_profile_name + vpc_security_group_ids = [aws_security_group.matt-kube-worker-sg.id, aws_security_group.matt-kube-mutual-sg.id] + key_name = "mattkey" + subnet_id = "subnet-0b44c52bb4b66253f" # select own subnet_id of us-east-1a + availability_zone = "us-east-1a" + tags = { + Name = "worker-2" + "kubernetes.io/cluster/mattsCluster" = "owned" + Project = "tera-kube-ans" + Role = "worker" + Id = "2" + environment = "dev" + } +} + +output kube-master-ip { + value = aws_instance.kube-master.public_ip + sensitive = false + description = "public ip of the kube-master" +} + +output worker-1-ip { + value = aws_instance.worker-1.public_ip + sensitive = false + description = "public ip of the worker-1" +} + +output worker-2-ip { + value = aws_instance.worker-2.public_ip + sensitive = false + description = "public ip of the worker-2" +} diff --git a/infrastructure/dev-k8s-terraform/modules/IAM/policy_for_master.json b/infrastructure/dev-k8s-terraform/modules/IAM/policy_for_master.json new file mode 100644 index 0000000..4a04df6 --- /dev/null +++ b/infrastructure/dev-k8s-terraform/modules/IAM/policy_for_master.json @@ -0,0 +1,143 @@ +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "autoscaling:DescribeAutoScalingGroups", + "autoscaling:DescribeLaunchConfigurations", + "autoscaling:DescribeTags", + "ec2:DescribeInstances", + "ec2:DescribeRegions", + "ec2:DescribeRouteTables", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVolumes", + "ec2:CreateSecurityGroup", + "ec2:CreateTags", + "ec2:CreateVolume", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyVolume", + "ec2:AttachVolume", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateRoute", + "ec2:DeleteRoute", + "ec2:DeleteSecurityGroup", + "ec2:DeleteVolume", + "ec2:DetachVolume", + "ec2:RevokeSecurityGroupIngress", + "ec2:DescribeVpcs", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:AttachLoadBalancerToSubnets", + "elasticloadbalancing:ApplySecurityGroupsToLoadBalancer", + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:CreateLoadBalancerPolicy", + "elasticloadbalancing:CreateLoadBalancerListeners", + "elasticloadbalancing:ConfigureHealthCheck", + "elasticloadbalancing:DeleteLoadBalancer", + "elasticloadbalancing:DeleteLoadBalancerListeners", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DetachLoadBalancerFromSubnets", + "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:RegisterInstancesWithLoadBalancer", + "elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:CreateListener", + "elasticloadbalancing:CreateTargetGroup", + "elasticloadbalancing:DeleteListener", + "elasticloadbalancing:DeleteTargetGroup", + "elasticloadbalancing:DescribeListeners", + "elasticloadbalancing:DescribeLoadBalancerPolicies", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:ModifyListener", + "elasticloadbalancing:ModifyTargetGroup", + "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:SetLoadBalancerPoliciesOfListener", + "iam:CreateServiceLinkedRole", + "kms:DescribeKey", + "ecr:GetDownloadUrlForLayer", + "ecr:BatchGetImage", + "ecr:BatchCheckLayerAvailability", + "ecr:PutImage", + "ecr:InitiateLayerUpload", + "ecr:UploadLayerPart", + "ecr:CompleteLayerUpload", + "ecr:DescribeRepositories", + "ecr:GetRepositoryPolicy", + "ecr:ListImages", + "ecr:DeleteRepository", + "ecr:BatchDeleteImage", + "ecr:SetRepositoryPolicy", + "ecr:DeleteRepositoryPolicy", + "s3:ListAccessPointsForObjectLambda", + "s3:GetObjectVersionTagging", + "s3:GetStorageLensConfigurationTagging", + "s3:GetObjectAcl", + "s3:GetBucketObjectLockConfiguration", + "s3:GetIntelligentTieringConfiguration", + "s3:GetObjectVersionAcl", + "s3:GetBucketPolicyStatus", + "s3:GetObjectRetention", + "s3:GetBucketWebsite", + "s3:GetJobTagging", + "s3:ListJobs", + "s3:GetMultiRegionAccessPoint", + "s3:GetObjectAttributes", + "s3:GetObjectLegalHold", + "s3:GetBucketNotification", + "s3:DescribeMultiRegionAccessPointOperation", + "s3:GetReplicationConfiguration", + "s3:ListMultipartUploadParts", + "s3:GetObject", + "s3:DescribeJob", + "s3:GetAnalyticsConfiguration", + "s3:GetObjectVersionForReplication", + "s3:GetAccessPointForObjectLambda", + "s3:GetStorageLensDashboard", + "s3:GetLifecycleConfiguration", + "s3:GetAccessPoint", + "s3:GetInventoryConfiguration", + "s3:GetBucketTagging", + "s3:GetAccessPointPolicyForObjectLambda", + "s3:GetBucketLogging", + "s3:ListBucketVersions", + "s3:ListBucket", + "s3:GetAccelerateConfiguration", + "s3:GetObjectVersionAttributes", + "s3:GetBucketPolicy", + "s3:GetEncryptionConfiguration", + "s3:GetObjectVersionTorrent", + "s3:GetBucketRequestPayment", + "s3:GetAccessPointPolicyStatus", + "s3:GetObjectTagging", + "s3:GetMetricsConfiguration", + "s3:GetBucketOwnershipControls", + "s3:GetBucketPublicAccessBlock", + "s3:GetMultiRegionAccessPointPolicyStatus", + "s3:ListBucketMultipartUploads", + "s3:GetMultiRegionAccessPointPolicy", + "s3:GetAccessPointPolicyStatusForObjectLambda", + "s3:ListAccessPoints", + "s3:GetBucketVersioning", + "s3:ListMultiRegionAccessPoints", + "s3:GetBucketAcl", + "s3:GetAccessPointConfigurationForObjectLambda", + "s3:ListStorageLensConfigurations", + "s3:GetObjectTorrent", + "s3:GetStorageLensConfiguration", + "s3:GetAccountPublicAccessBlock", + "s3:ListAllMyBuckets", + "s3:GetBucketCORS", + "s3:GetBucketLocation", + "s3:GetAccessPointPolicy", + "s3:GetObjectVersion" + ], + "Resource": [ + "*" + ] + } + ] +} diff --git a/infrastructure/dev-k8s-terraform/modules/IAM/policy_for_worker.json b/infrastructure/dev-k8s-terraform/modules/IAM/policy_for_worker.json new file mode 100644 index 0000000..b6f3028 --- /dev/null +++ b/infrastructure/dev-k8s-terraform/modules/IAM/policy_for_worker.json @@ -0,0 +1,136 @@ +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "ec2:CreateSnapshot", + "ec2:AttachVolume", + "ec2:DetachVolume", + "ec2:ModifyVolume", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInstances", + "ec2:DescribeSnapshots", + "ec2:DescribeTags", + "ec2:DescribeVolumes", + "ec2:DescribeVolumesModifications", + "ecr:GetDownloadUrlForLayer", + "ecr:BatchGetImage", + "ecr:BatchCheckLayerAvailability", + "ecr:PutImage", + "ecr:InitiateLayerUpload", + "ecr:UploadLayerPart", + "ecr:CompleteLayerUpload", + "ecr:DescribeRepositories", + "ecr:GetRepositoryPolicy", + "ecr:ListImages", + "ecr:DeleteRepository", + "ecr:BatchDeleteImage", + "ecr:SetRepositoryPolicy", + "ecr:DeleteRepositoryPolicy" + ], + "Resource": "*" + }, + { + "Effect": "Allow", + "Action": [ + "ec2:CreateTags" + ], + "Resource": [ + "arn:aws:ec2:*:*:volume/*", + "arn:aws:ec2:*:*:snapshot/*" + ], + "Condition": { + "StringEquals": { + "ec2:CreateAction": [ + "CreateVolume", + "CreateSnapshot" + ] + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteTags" + ], + "Resource": [ + "arn:aws:ec2:*:*:volume/*", + "arn:aws:ec2:*:*:snapshot/*" + ] + }, + { + "Effect": "Allow", + "Action": [ + "ec2:CreateVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "aws:RequestTag/ebs.csi.aws.com/cluster": "true" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:CreateVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "aws:RequestTag/CSIVolumeName": "*" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/CSIVolumeName": "*" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/ebs.csi.aws.com/cluster": "true" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteSnapshot" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/CSIVolumeSnapshotName": "*" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteSnapshot" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/ebs.csi.aws.com/cluster": "true" + } + } + } + ] + } + \ No newline at end of file diff --git a/infrastructure/dev-k8s-terraform/modules/IAM/roles.tf b/infrastructure/dev-k8s-terraform/modules/IAM/roles.tf new file mode 100644 index 0000000..fedb5b2 --- /dev/null +++ b/infrastructure/dev-k8s-terraform/modules/IAM/roles.tf @@ -0,0 +1,87 @@ +resource "aws_iam_policy" "policy_for_master_role" { + name = "policy_for_master_role" + policy = file("./modules/IAM/policy_for_master.json") +} + +resource "aws_iam_policy" "policy_for_worker_role" { + name = "policy_for_worker_role" + policy = file("./modules/IAM/policy_for_worker.json") +} + +resource "aws_iam_role" "role_for_master" { + name = "role_master_k8s" + + # Terraform "jsonencode" function converts a + # Terraform expression result to valid JSON syntax. + assume_role_policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Sid = "" + Principal = { + Service = "ec2.amazonaws.com" + } + }, + ] + }) + + tags = { + Name = "role_for_master" + } +} + +resource "aws_iam_role" "role_for_worker" { + name = "role_worker_k8s" + + # Terraform "jsonencode" function converts a + # Terraform expression result to valid JSON syntax. + assume_role_policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Sid = "" + Principal = { + Service = "ec2.amazonaws.com" + } + }, + ] + }) + + tags = { + Name = "role_for_worker" + } +} + +resource "aws_iam_policy_attachment" "attach_for_master" { + name = "attachment_for_master" + roles = [aws_iam_role.role_for_master.name] + policy_arn = aws_iam_policy.policy_for_master_role.arn +} + +resource "aws_iam_policy_attachment" "attach_for_worker" { + name = "attachment_for_worker" + roles = [aws_iam_role.role_for_worker.name] + policy_arn = aws_iam_policy.policy_for_worker_role.arn +} + +resource "aws_iam_instance_profile" "profile_for_master" { + name = "profile_for_master" + role = aws_iam_role.role_for_master.name +} + +resource "aws_iam_instance_profile" "profile_for_worker" { + name = "profile_for_worker" + role = aws_iam_role.role_for_worker.name +} + +output master_profile_name { + value = aws_iam_instance_profile.profile_for_master.name +} + +output worker_profile_name { + value = aws_iam_instance_profile.profile_for_worker.name +} diff --git a/infrastructure/qa-k8s-terraform/main.tf b/infrastructure/qa-k8s-terraform/main.tf new file mode 100644 index 0000000..349a93e --- /dev/null +++ b/infrastructure/qa-k8s-terraform/main.tf @@ -0,0 +1,205 @@ +provider "aws" { + region = "us-east-1" +} + +module "iam" { + source = "./modules/IAM" +} + +resource "aws_security_group" "matt-kube-mutual-sg" { + name = "kube-mutual-sec-group-for-matt" +} + +resource "aws_security_group" "matt-kube-worker-sg" { + name = "kube-worker-sec-group-for-matt" + ingress { + protocol = "tcp" + from_port = 10250 + to_port = 10250 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 30000 + to_port = 32767 + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + protocol = "tcp" + from_port = 22 + to_port = 22 + cidr_blocks = ["0.0.0.0/0"] + } + + ingress { + protocol = "udp" + from_port = 8472 + to_port = 8472 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + + egress{ + protocol = "-1" + from_port = 0 + to_port = 0 + cidr_blocks = ["0.0.0.0/0"] + } + tags = { + Name = "kube-worker-secgroup" + "kubernetes.io/cluster/mattsCluster" = "owned" + } +} + +resource "aws_security_group" "matt-kube-master-sg" { + name = "kube-master-sec-group-for-matt" + + ingress { + protocol = "tcp" + from_port = 22 + to_port = 22 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "tcp" + from_port = 80 + to_port = 80 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "tcp" + from_port = 6443 + to_port = 6443 + cidr_blocks = ["0.0.0.0/0"] + #security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 443 + to_port = 443 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "tcp" + from_port = 2380 + to_port = 2380 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 2379 + to_port = 2379 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 10250 + to_port = 10250 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 10251 + to_port = 10251 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 10252 + to_port = 10252 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + ingress { + protocol = "tcp" + from_port = 30000 + to_port = 32767 + cidr_blocks = ["0.0.0.0/0"] + } + ingress { + protocol = "udp" + from_port = 8472 + to_port = 8472 + security_groups = [aws_security_group.matt-kube-mutual-sg.id] + } + egress { + protocol = "-1" + from_port = 0 + to_port = 0 + cidr_blocks = ["0.0.0.0/0"] + } + tags = { + Name = "kube-master-secgroup" + } +} + +resource "aws_instance" "kube-master" { + ami = "ami-013f17f36f8b1fefb" + instance_type = "t3a.medium" + iam_instance_profile = module.iam.master_profile_name + vpc_security_group_ids = [aws_security_group.matt-kube-master-sg.id, aws_security_group.matt-kube-mutual-sg.id] + key_name = "mattkey" + subnet_id = "subnet-0b44c52bb4b66253f" # select own subnet_id of us-east-1a + availability_zone = "us-east-1a" + tags = { + Name = "kube-master" + "kubernetes.io/cluster/mattsCluster" = "owned" + Project = "tera-kube-ans" + Role = "master" + Id = "1" + environment = "qa" + } +} + +resource "aws_instance" "worker-1" { + ami = "ami-013f17f36f8b1fefb" + instance_type = "t3a.medium" + iam_instance_profile = module.iam.worker_profile_name + vpc_security_group_ids = [aws_security_group.matt-kube-worker-sg.id, aws_security_group.matt-kube-mutual-sg.id] + key_name = "mattkey" + subnet_id = "subnet-0b44c52bb4b66253f" # select own subnet_id of us-east-1a + availability_zone = "us-east-1a" + tags = { + Name = "worker-1" + "kubernetes.io/cluster/mattsCluster" = "owned" + Project = "tera-kube-ans" + Role = "worker" + Id = "1" + environment = "qa" + } +} + +resource "aws_instance" "worker-2" { + ami = "ami-013f17f36f8b1fefb" + instance_type = "t3a.medium" + iam_instance_profile = module.iam.worker_profile_name + vpc_security_group_ids = [aws_security_group.matt-kube-worker-sg.id, aws_security_group.matt-kube-mutual-sg.id] + key_name = "mattkey" + subnet_id = "subnet-0b44c52bb4b66253f" # select own subnet_id of us-east-1a + availability_zone = "us-east-1a" + tags = { + Name = "worker-2" + "kubernetes.io/cluster/mattsCluster" = "owned" + Project = "tera-kube-ans" + Role = "worker" + Id = "2" + environment = "qa" + } +} + +output kube-master-ip { + value = aws_instance.kube-master.public_ip + sensitive = false + description = "public ip of the kube-master" +} + +output worker-1-ip { + value = aws_instance.worker-1.public_ip + sensitive = false + description = "public ip of the worker-1" +} + +output worker-2-ip { + value = aws_instance.worker-2.public_ip + sensitive = false + description = "public ip of the worker-2" +} diff --git a/infrastructure/qa-k8s-terraform/modules/IAM/policy_for_master.json b/infrastructure/qa-k8s-terraform/modules/IAM/policy_for_master.json new file mode 100644 index 0000000..4a04df6 --- /dev/null +++ b/infrastructure/qa-k8s-terraform/modules/IAM/policy_for_master.json @@ -0,0 +1,143 @@ +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "autoscaling:DescribeAutoScalingGroups", + "autoscaling:DescribeLaunchConfigurations", + "autoscaling:DescribeTags", + "ec2:DescribeInstances", + "ec2:DescribeRegions", + "ec2:DescribeRouteTables", + "ec2:DescribeSecurityGroups", + "ec2:DescribeSubnets", + "ec2:DescribeVolumes", + "ec2:CreateSecurityGroup", + "ec2:CreateTags", + "ec2:CreateVolume", + "ec2:ModifyInstanceAttribute", + "ec2:ModifyVolume", + "ec2:AttachVolume", + "ec2:AuthorizeSecurityGroupIngress", + "ec2:CreateRoute", + "ec2:DeleteRoute", + "ec2:DeleteSecurityGroup", + "ec2:DeleteVolume", + "ec2:DetachVolume", + "ec2:RevokeSecurityGroupIngress", + "ec2:DescribeVpcs", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:AttachLoadBalancerToSubnets", + "elasticloadbalancing:ApplySecurityGroupsToLoadBalancer", + "elasticloadbalancing:CreateLoadBalancer", + "elasticloadbalancing:CreateLoadBalancerPolicy", + "elasticloadbalancing:CreateLoadBalancerListeners", + "elasticloadbalancing:ConfigureHealthCheck", + "elasticloadbalancing:DeleteLoadBalancer", + "elasticloadbalancing:DeleteLoadBalancerListeners", + "elasticloadbalancing:DescribeLoadBalancers", + "elasticloadbalancing:DescribeLoadBalancerAttributes", + "elasticloadbalancing:DetachLoadBalancerFromSubnets", + "elasticloadbalancing:DeregisterInstancesFromLoadBalancer", + "elasticloadbalancing:ModifyLoadBalancerAttributes", + "elasticloadbalancing:RegisterInstancesWithLoadBalancer", + "elasticloadbalancing:SetLoadBalancerPoliciesForBackendServer", + "elasticloadbalancing:AddTags", + "elasticloadbalancing:CreateListener", + "elasticloadbalancing:CreateTargetGroup", + "elasticloadbalancing:DeleteListener", + "elasticloadbalancing:DeleteTargetGroup", + "elasticloadbalancing:DescribeListeners", + "elasticloadbalancing:DescribeLoadBalancerPolicies", + "elasticloadbalancing:DescribeTargetGroups", + "elasticloadbalancing:DescribeTargetHealth", + "elasticloadbalancing:ModifyListener", + "elasticloadbalancing:ModifyTargetGroup", + "elasticloadbalancing:RegisterTargets", + "elasticloadbalancing:SetLoadBalancerPoliciesOfListener", + "iam:CreateServiceLinkedRole", + "kms:DescribeKey", + "ecr:GetDownloadUrlForLayer", + "ecr:BatchGetImage", + "ecr:BatchCheckLayerAvailability", + "ecr:PutImage", + "ecr:InitiateLayerUpload", + "ecr:UploadLayerPart", + "ecr:CompleteLayerUpload", + "ecr:DescribeRepositories", + "ecr:GetRepositoryPolicy", + "ecr:ListImages", + "ecr:DeleteRepository", + "ecr:BatchDeleteImage", + "ecr:SetRepositoryPolicy", + "ecr:DeleteRepositoryPolicy", + "s3:ListAccessPointsForObjectLambda", + "s3:GetObjectVersionTagging", + "s3:GetStorageLensConfigurationTagging", + "s3:GetObjectAcl", + "s3:GetBucketObjectLockConfiguration", + "s3:GetIntelligentTieringConfiguration", + "s3:GetObjectVersionAcl", + "s3:GetBucketPolicyStatus", + "s3:GetObjectRetention", + "s3:GetBucketWebsite", + "s3:GetJobTagging", + "s3:ListJobs", + "s3:GetMultiRegionAccessPoint", + "s3:GetObjectAttributes", + "s3:GetObjectLegalHold", + "s3:GetBucketNotification", + "s3:DescribeMultiRegionAccessPointOperation", + "s3:GetReplicationConfiguration", + "s3:ListMultipartUploadParts", + "s3:GetObject", + "s3:DescribeJob", + "s3:GetAnalyticsConfiguration", + "s3:GetObjectVersionForReplication", + "s3:GetAccessPointForObjectLambda", + "s3:GetStorageLensDashboard", + "s3:GetLifecycleConfiguration", + "s3:GetAccessPoint", + "s3:GetInventoryConfiguration", + "s3:GetBucketTagging", + "s3:GetAccessPointPolicyForObjectLambda", + "s3:GetBucketLogging", + "s3:ListBucketVersions", + "s3:ListBucket", + "s3:GetAccelerateConfiguration", + "s3:GetObjectVersionAttributes", + "s3:GetBucketPolicy", + "s3:GetEncryptionConfiguration", + "s3:GetObjectVersionTorrent", + "s3:GetBucketRequestPayment", + "s3:GetAccessPointPolicyStatus", + "s3:GetObjectTagging", + "s3:GetMetricsConfiguration", + "s3:GetBucketOwnershipControls", + "s3:GetBucketPublicAccessBlock", + "s3:GetMultiRegionAccessPointPolicyStatus", + "s3:ListBucketMultipartUploads", + "s3:GetMultiRegionAccessPointPolicy", + "s3:GetAccessPointPolicyStatusForObjectLambda", + "s3:ListAccessPoints", + "s3:GetBucketVersioning", + "s3:ListMultiRegionAccessPoints", + "s3:GetBucketAcl", + "s3:GetAccessPointConfigurationForObjectLambda", + "s3:ListStorageLensConfigurations", + "s3:GetObjectTorrent", + "s3:GetStorageLensConfiguration", + "s3:GetAccountPublicAccessBlock", + "s3:ListAllMyBuckets", + "s3:GetBucketCORS", + "s3:GetBucketLocation", + "s3:GetAccessPointPolicy", + "s3:GetObjectVersion" + ], + "Resource": [ + "*" + ] + } + ] +} diff --git a/infrastructure/qa-k8s-terraform/modules/IAM/policy_for_worker.json b/infrastructure/qa-k8s-terraform/modules/IAM/policy_for_worker.json new file mode 100644 index 0000000..b6f3028 --- /dev/null +++ b/infrastructure/qa-k8s-terraform/modules/IAM/policy_for_worker.json @@ -0,0 +1,136 @@ +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "ec2:CreateSnapshot", + "ec2:AttachVolume", + "ec2:DetachVolume", + "ec2:ModifyVolume", + "ec2:DescribeAvailabilityZones", + "ec2:DescribeInstances", + "ec2:DescribeSnapshots", + "ec2:DescribeTags", + "ec2:DescribeVolumes", + "ec2:DescribeVolumesModifications", + "ecr:GetDownloadUrlForLayer", + "ecr:BatchGetImage", + "ecr:BatchCheckLayerAvailability", + "ecr:PutImage", + "ecr:InitiateLayerUpload", + "ecr:UploadLayerPart", + "ecr:CompleteLayerUpload", + "ecr:DescribeRepositories", + "ecr:GetRepositoryPolicy", + "ecr:ListImages", + "ecr:DeleteRepository", + "ecr:BatchDeleteImage", + "ecr:SetRepositoryPolicy", + "ecr:DeleteRepositoryPolicy" + ], + "Resource": "*" + }, + { + "Effect": "Allow", + "Action": [ + "ec2:CreateTags" + ], + "Resource": [ + "arn:aws:ec2:*:*:volume/*", + "arn:aws:ec2:*:*:snapshot/*" + ], + "Condition": { + "StringEquals": { + "ec2:CreateAction": [ + "CreateVolume", + "CreateSnapshot" + ] + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteTags" + ], + "Resource": [ + "arn:aws:ec2:*:*:volume/*", + "arn:aws:ec2:*:*:snapshot/*" + ] + }, + { + "Effect": "Allow", + "Action": [ + "ec2:CreateVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "aws:RequestTag/ebs.csi.aws.com/cluster": "true" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:CreateVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "aws:RequestTag/CSIVolumeName": "*" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/CSIVolumeName": "*" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteVolume" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/ebs.csi.aws.com/cluster": "true" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteSnapshot" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/CSIVolumeSnapshotName": "*" + } + } + }, + { + "Effect": "Allow", + "Action": [ + "ec2:DeleteSnapshot" + ], + "Resource": "*", + "Condition": { + "StringLike": { + "ec2:ResourceTag/ebs.csi.aws.com/cluster": "true" + } + } + } + ] + } + \ No newline at end of file diff --git a/infrastructure/qa-k8s-terraform/modules/IAM/roles.tf b/infrastructure/qa-k8s-terraform/modules/IAM/roles.tf new file mode 100644 index 0000000..fedb5b2 --- /dev/null +++ b/infrastructure/qa-k8s-terraform/modules/IAM/roles.tf @@ -0,0 +1,87 @@ +resource "aws_iam_policy" "policy_for_master_role" { + name = "policy_for_master_role" + policy = file("./modules/IAM/policy_for_master.json") +} + +resource "aws_iam_policy" "policy_for_worker_role" { + name = "policy_for_worker_role" + policy = file("./modules/IAM/policy_for_worker.json") +} + +resource "aws_iam_role" "role_for_master" { + name = "role_master_k8s" + + # Terraform "jsonencode" function converts a + # Terraform expression result to valid JSON syntax. + assume_role_policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Sid = "" + Principal = { + Service = "ec2.amazonaws.com" + } + }, + ] + }) + + tags = { + Name = "role_for_master" + } +} + +resource "aws_iam_role" "role_for_worker" { + name = "role_worker_k8s" + + # Terraform "jsonencode" function converts a + # Terraform expression result to valid JSON syntax. + assume_role_policy = jsonencode({ + Version = "2012-10-17" + Statement = [ + { + Action = "sts:AssumeRole" + Effect = "Allow" + Sid = "" + Principal = { + Service = "ec2.amazonaws.com" + } + }, + ] + }) + + tags = { + Name = "role_for_worker" + } +} + +resource "aws_iam_policy_attachment" "attach_for_master" { + name = "attachment_for_master" + roles = [aws_iam_role.role_for_master.name] + policy_arn = aws_iam_policy.policy_for_master_role.arn +} + +resource "aws_iam_policy_attachment" "attach_for_worker" { + name = "attachment_for_worker" + roles = [aws_iam_role.role_for_worker.name] + policy_arn = aws_iam_policy.policy_for_worker_role.arn +} + +resource "aws_iam_instance_profile" "profile_for_master" { + name = "profile_for_master" + role = aws_iam_role.role_for_master.name +} + +resource "aws_iam_instance_profile" "profile_for_worker" { + name = "profile_for_worker" + role = aws_iam_role.role_for_worker.name +} + +output master_profile_name { + value = aws_iam_instance_profile.profile_for_master.name +} + +output worker_profile_name { + value = aws_iam_instance_profile.profile_for_worker.name +} diff --git a/k8s/petclinic_chart/values.yaml b/k8s/petclinic_chart/values.yaml index c779cdd..5953911 100644 --- a/k8s/petclinic_chart/values.yaml +++ b/k8s/petclinic_chart/values.yaml @@ -8,4 +8,4 @@ IMAGE_TAG_ADMIN_SERVER: "testing-image-7" IMAGE_TAG_HYSTRIX_DASHBOARD: "testing-image-8" IMAGE_TAG_GRAFANA_SERVICE: "testing-image-9" IMAGE_TAG_PROMETHEUS_SERVICE: "testing-image-10" -DNS_NAME: "cloudevops.link" +DNS_NAME: "petclinic.cloudevops.link"