diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b242572 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "githubPullRequests.ignoredPullRequestBranches": [ + "main" + ] +} \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..b6fbc22 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,82 @@ +/* primeira pipeline */ + +pipeline{ + + /* + environment { + imagename = "harshmanvar/node-web-app" + registryCredential = 'docker' + dockerImage = '' + } + */ + + agent any + + stages{ + + stage('Get Source'){ + steps{ + git url: 'https://github.com/jheffersonn/pedelogo-catalogo.git', branch: 'main' + + /* + git([url: 'https://github.com/harsh4870/node-js-aws-cloudbuild-basic-ci-cd.git', branch: 'main', credentialsId: 'github']) + */ + } + } + + stage('Docker Build'){ + + steps{ + script{ + dockerapp = docker.build("jeffersondevops/pedelogo-catalogo:${env.BUILD_ID}", + '-f ./src/PedeLogo.Catalogo.Api/Dockerfile .') + } + /* + script { + dockerImage = docker.build imagename + } + */ + } + } + + + stage('Docker Push Image'){ + + steps{ + script{ + docker.withRegistry('https://registry.hub.docker.com', 'dockerhub' ){ + dockerapp.push('latest') + dockerapp.push("${env.BUILD_ID}") + + } + + /* + script { + docker.withRegistry( '', registryCredential ) { + dockerImage.push("$BUILD_NUMBER") + dockerImage.push('latest') + + } + + */ + } + } + } + + stage('Deploy Kubernetes'){ + + steps{ + + sh "cat ./deployment.yaml" + sh "kubectl --kubeconfig=kubeconfig get pods" + sh "kubectl --kubeconfig=kubeconfig apply -f ./deployment.yaml" + + /* withKubeConfig([credentialsId: 'kubernetes']){ + sh 'kubectl apply -f ./deployment.yaml' + + }*/ + } + } + + } +} \ No newline at end of file diff --git a/Jenkinsfile.old b/Jenkinsfile.old new file mode 100644 index 0000000..d6caaa6 --- /dev/null +++ b/Jenkinsfile.old @@ -0,0 +1,44 @@ +pipeline{ + agent any + + stages{ + + stage('Get Source'){ + steps{ + git url: 'https://github.com/jheffersonn/pedelogo-catalogo.git', branch: 'main' + } + } + + stage('Docker Build'){ + steps{ + script{ + dockerapp = docker.build("jeffersondevops/pedelogo-catalogo:${env.BUILD_ID}", + '-f ./src/PedeLogo.Catalogo.Api/Dockerfile .') + } + + } + } + + stage('Docker Push Image'){ + steps{ + script{ + docker.withRegistry('https://registry.hub.docker.com', 'dockerhub' ){ + dockerapp.push('latest') + dockerapp.push("${env.BUILD_ID}") + + } + } + } + } + + stage('Deploy Kubernetes'){ + steps{ + withKubeConfig([credentialsId: 'kubeconfig']){ + sh 'kubectl apply -f ./deployment.yaml' + } + + } + } + + } +} \ No newline at end of file diff --git a/deployment.yaml b/deployment.yaml new file mode 100644 index 0000000..4c331a1 --- /dev/null +++ b/deployment.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + app: nginx + tier: frontend +spec: + containers: + - name: nginx + - image: nginx diff --git a/kubeconfig b/kubeconfig new file mode 100644 index 0000000..e6a764e --- /dev/null +++ b/kubeconfig @@ -0,0 +1,19 @@ +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURCVENDQWUyZ0F3SUJBZ0lJU21JWkJnN2tXM013RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRBM016RXdNakV6TVRaYUZ3MHpOREEzTWprd01qRTRNVFphTUJVeApFekFSQmdOVkJBTVRDbXQxWW1WeWJtVjBaWE13Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLCkFvSUJBUUN3dlF0d3lvTlZpN3pDOGp3UzVjaytTekNSd25QWklEWGdJVnZ6Z3VrQjdqeGRUM3hCZ0lXaU81TTcKaUc0YVJiaWhvSURqY0FzMHdRTlp3MGRtaHc1Y0k4akJsL0M4SHo3N0E4RVd1clNGOCszeGpvK0JnVUg1YUZwbwp0OXR4RmhmSXFYTUZDc2NCWHh3OFkvU245c3BXTFNCQmhLeFdhRjdWcU1SUTRyaHFXR3hSaDJOazVNc2N3enBKCkwvcCs1cE1Demx6ck54V1JtaGdDeEVrMkkwelNTZkpQWEYwSVllR3NGZGcyU1c0QkpVTkZmd0RHWHdvT2hVRzcKY0EvNmRsL01LUlBzTExWMnRpS05xWTZYY2JTSmtEKzZMYmlEMENvNGdGV0I5M0RGZGFuRXZxYU9uUGhwbFMzbQprS056cnZOQkI5dWQ3SXhvQ25hRXpnSUZKUGdWQWdNQkFBR2pXVEJYTUE0R0ExVWREd0VCL3dRRUF3SUNwREFQCkJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSZ0dZZE5ZNDBmeTMrRmc1dXFYNW41bEw2ZjdEQVYKQmdOVkhSRUVEakFNZ2dwcmRXSmxjbTVsZEdWek1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQVNvZjlJWEdMZAo2VktFTjdrSEZJd3VpWldJOGpEM2RIeEhzVnV6aEQzNzcvUnozTWFGVjREY2hBa0VCMEgrZk9TZjhOeUI1TzBsCmo0MjB0UlhhaXJROVZER2xTNi82Nk53eGlsN2ozOExLc29GMFFJWVBJenRRMHdkeGhoMTNsblIrU0tjelVKNngKUzdoSlFKTDVvUW9aUTFQUEVtNngwNStDKzN4eS80R092RVdHVC9ySUlGU2YySDlCeXgyQ0h5VUhzOTdhNWdPKwpYU2FnYXQ5bzg4aC8ydFp5YTV1dDRVVDZVTWVsVHJ6bXpJT3d6MnR5YnZZdTYzN2RQc045ZStBaHhDdG9LOTdtClZ0OEM4UlYveHh4SW1FVVIrNG5Ra3JlN1hYVDR1U2pDN0dZczg4OE1vTFA1cWgwMk4yOGI4T292N3R1Y3BUT3kKQVhYU2RLUXJlcDhlCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + server: https://192.168.15.187:6443 + name: kubernetes +contexts: +- context: + cluster: kubernetes + user: kubernetes-admin + name: kubernetes-admin@kubernetes +current-context: kubernetes-admin@kubernetes +kind: Config +preferences: {} +users: +- name: kubernetes-admin + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURLVENDQWhHZ0F3SUJBZ0lJYTlEV1FrUzlmMVV3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRBM016RXdNakV6TVRaYUZ3MHlOVEEzTXpFd01qRTRNVGhhTUR3eApIekFkQmdOVkJBb1RGbXQxWW1WaFpHMDZZMngxYzNSbGNpMWhaRzFwYm5NeEdUQVhCZ05WQkFNVEVHdDFZbVZ5CmJtVjBaWE10WVdSdGFXNHdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFDNnFBSzQKYkN4b3dwQ2ppNlE5TnlGTk9adC9BakJySGdORTFRbjMzTTEzWG1MTWY0a1ZDYU0xemhLOCs0WXBIRWdFNHh0RApPeStOVXlLQTJtV0NIYUsxdk1wbSswMEk3bnVxSzBLc1p0V3FGQUZnTEZSalliUWFCUG5CemsrblhuTk5LNnNPCm9xWHFRZzNJaXl0Sm5mWG9OU0lDMDhFU1M5MlNkTk5qVTZnQnlRWXhtTkF6akNmaWZVNU1QM21KM1VvOGtLOFYKeGZSa1krTWh6K21OV0ttRGtvLzBMTGNZUTU3RC9neEFnUE8vZG9lenY5ZXhoVkxCQUdXUVhsYTVXYVMvVjdKbApRaEtiQWtOZ1lENHBNdEh2U1lPTmpDeWxZVis1dzFpdEUwa2ZrZ1VTeXJjWkxLN21sWCtvM3d4N3hTdWtJRUdXCnBJSHIvOXozU3o0Z1BwSXhBZ01CQUFHalZqQlVNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUsKQmdnckJnRUZCUWNEQWpBTUJnTlZIUk1CQWY4RUFqQUFNQjhHQTFVZEl3UVlNQmFBRkdBWmgwMWpqUi9MZjRXRAptNnBmbWZtVXZwL3NNQTBHQ1NxR1NJYjNEUUVCQ3dVQUE0SUJBUUE0UldjMG1DaVhKd0xNMm5xTG12Rm0zODlkClByT0p2aFowd1hKOFcwaUhYdytKUTJ4QzBDakxFc0pEUlBMQnN3bDhZVkJZZk1Fb0ZCM1dxMm4ycDd2SjJ3bDAKU2hnOXNCYlRQbDBzZnNrV253bWs5VTRLZnNZbHBJcmJjdjk1QVJOY3IvcE1rQ085MDVDVU9Dai92enRsdGJhUwpNcmh6VUhNY3BRS25wV3cwVzJKR0lmTzdLVHZXQXZMTDU3NjZuVVNWbVdsa29rUnBKeXNxRHRhRkFHVnF6c2FuCkIrTFhwN2JrcVdsNTJuTWp4MVFSMk5CZERkNSt1bEdqZWxUT2pwU3hXZ3RXbnh5MFpVYS9HUWRYUmR4U2RpSisKTWVuTHZXZWw0MGs2emJHY0tBdGZqYTNkZ3FTc3lWVTJYZ0hwWlRZQkhnOHBndlBFdU1Teng0R28vYURGCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K + client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBdXFnQ3VHd3NhTUtRbzR1a1BUY2hUVG1iZndJd2F4NERSTlVKOTl6TmQxNWl6SCtKCkZRbWpOYzRTdlB1R0tSeElCT01iUXpzdmpWTWlnTnBsZ2gyaXRiektadnROQ081N3FpdENyR2JWcWhRQllDeFUKWTJHMEdnVDV3YzVQcDE1elRTdXJEcUtsNmtJTnlJc3JTWjMxNkRVaUF0UEJFa3Zka25UVFkxT29BY2tHTVpqUQpNNHduNG4xT1REOTVpZDFLUEpDdkZjWDBaR1BqSWMvcGpWaXBnNUtQOUN5M0dFT2V3LzRNUUlEenYzYUhzNy9YCnNZVlN3UUJsa0Y1V3VWbWt2MWV5WlVJU213SkRZR0ErS1RMUjcwbURqWXdzcFdGZnVjTllyUk5KSDVJRkVzcTMKR1N5dTVwVi9xTjhNZThVcnBDQkJscVNCNi8vYzkwcytJRDZTTVFJREFRQUJBb0lCQUFTMGYzME9uUC8zQjVaWAp5c2dRUDdLbXBSaktnVlh4NTdzd2M1UGY2UDM5VHhoQWpzQU5BaVExRVp2WjYwUFdCcXE0M3RNUEJ0L1ZIS1dLCjI4d3YydzRodUNob1pVUzRYajJuNFlKZkJUdklUVkNUVFgxRDFUcGlyYmtJN2xFVnZHcFJrM3BHOTArMFlveVAKbFlQQmk1VlM0WXlZc2VFNE1GbWt3RDljdUh0eS9yN0xPYzRwL0JpYWtraWxpYkVFTVZZVFEreUNFb2orVUNLYgpHZkRjb1B6cnRlYWJsZFQwSGt2ZmRuaDBKZWhoY25iMTZqOVR4QmxYYWZ5VlhGMEhvSk1aQU5XOFp6cFFkRUxUCi9PbnBJcTdMMHNqa3lmYjdKc29GOTgwbkNyanJQbTNSdDlxbHFkWXFBWFVTbXNESlovU2JmSk1iaC9jUHh0R3YKSk1VQmtNRUNnWUVBNStocUJtN2lhbklFekljbW9NakhBL2N6WHdmdmQwMU5wZFZvVnFLYzZKMDZXSFFCMjkwRgpDOW85aW9leitBbGs2QkROZzlxWHMwVzJUclIvY3NXRmF3Y0tWb1I3TUlLQUdFNEp3WlhBT28yQkg5elhkWkVWClRJalh0ZnNSRHp6aTdvODlzcG1iZUxhNzdWalErZlJ2N1Q1SGplcVhEanJhZERxS1FLRXFBZVVDZ1lFQXpnd2gKcmFqTlYySE0rc05EMzh2ejBXTUdPU2VQK1RTMVhnSWo3TTB6dC90UHVMRG4yQXh6LzJPWE83RDA2R250T3lnbwpFVktXVC9mMHAwa1E4N0srNXR0anJ5SktKSjV5UmRZc1lHTm11TjFkaDRmY2tCQm5zYkVjOE83dkI2N3VhZ2VPCm5pcHBkMHhqUE9wam82dENpSGZvb29pMFZpZ3l3U1p4NDNCMk9sMENnWUF6YnVsczZkVFBkT0E1bUZQcDN2MjgKbEd2UlRNcEFkR1dmUFBoNkZuQ2thcEtSSVpGeitNM3d0Z05tSVBpNkx5TXhFT0R6dUZ4aXh6aEt0bDk1emZMcwpMTkNQSmF6SXNuakVhekpndTl5NVg3N2VtVFV6L3V4eFgvd3ZnVEprWmNXUzBUUUcwMmlXMmpoTnlKLzRmOHovCkdndjJucXZIM1Nlc0ZYdXFIOVJZUFFLQmdGN1oxTk1WaHRsMzZ4MXdzQmtnMFMrTmp6cldUSCtpMU83ZXUxenkKSmFISExhN091UnVLdUFkVCtEV0JRMnlOL3FnaDF6Z0tOYW5BY2o1ajgwckwrUGRhL1N1TTlHYWhEZWU2TFJsKwpDTGFIS053UUhlZXZ0WnhsOVBXd2VCYW9YNVl0dm1odkM3ZmdVVHFraDVPN2JkaFdvcC9Yb0hTYzhxaFpvMG5ZCjVvUDlBb0dBZlVUanIyZzBrVVpwdHdIMmJBbXowQWlhd0FtUFdGRkxnMEQ4VzQ2RWlXcGtkMWFpbDkzdGpvNlcKMjR0Z0hUWUw3Rm5TWGdaQWZpNk9PakdjbVVITnR2b0VRcXY1SU5ZZnE1SkdGRzUzTU9EbjJKbDZsMEN6MVdnRAovanRUNCtwcFE1UStGeTBDQlozenMyajZKWVhEbCtUcHF0UDZ5bVM0WFgzTi9OK3hrck09Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==