Skip to content

Commit d65e76a

Browse files
Kalyan Reddy DaidaKalyan Reddy Daida
Kalyan Reddy Daida
authored and
Kalyan Reddy Daida
committed
Welcome to Stack Simplify
1 parent fbe9c40 commit d65e76a

File tree

14 files changed

+991
-0
lines changed

14 files changed

+991
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Docker
2+
# Build and push an image to Azure Container Registry
3+
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
4+
5+
trigger:
6+
- master
7+
8+
resources:
9+
- repo: self
10+
11+
variables:
12+
# Container registry service connection established during pipeline creation
13+
dockerRegistryServiceConnection: 'd9a595c8-a457-496a-8aff-13156fd2693a'
14+
imageRepository: 'app1nginxaks'
15+
containerRegistry: 'acrforaksdemo1.azurecr.io'
16+
dockerfilePath: '$(Build.SourcesDirectory)/Dockerfile'
17+
tag: '$(Build.BuildId)'
18+
19+
# Agent VM image name
20+
vmImageName: 'ubuntu-latest'
21+
22+
stages:
23+
- stage: Build
24+
displayName: Build and push stage
25+
jobs:
26+
- job: Build
27+
displayName: Build
28+
pool:
29+
vmImage: $(vmImageName)
30+
steps:
31+
- task: Docker@2
32+
displayName: Build and push an image to container registry
33+
inputs:
34+
command: buildAndPush
35+
repository: $(imageRepository)
36+
dockerfile: $(dockerfilePath)
37+
containerRegistry: $(dockerRegistryServiceConnection)
38+
tags: |
39+
$(tag)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
FROM nginx
2+
COPY index.html /usr/share/nginx/html
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# AKS Azure DevOps - Github & Dockerhub
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<body style="background-color:rgb(199, 240, 231);">
4+
<h1>Welcome to Stack Simplify - Azure DevOps - V1</h1>
5+
<h2>Azure DevOps Demo</h2>
6+
<h2>Application Version: V1</h2>
7+
</body>
8+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: app1-nginx-deployment
5+
labels:
6+
app: app1-nginx
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: app1-nginx
12+
template:
13+
metadata:
14+
labels:
15+
app: app1-nginx
16+
spec:
17+
containers:
18+
- name: app1-nginx
19+
image: stacksimplify/aks-github-dockerhub-nginxapp
20+
ports:
21+
- containerPort: 80
22+
---
23+
apiVersion: v1
24+
kind: Service
25+
metadata:
26+
name: app1-nginx-loadbalancer-service
27+
labels:
28+
app: app1-nginx
29+
spec:
30+
type: LoadBalancer
31+
selector:
32+
app: app1-nginx
33+
ports:
34+
- port: 80
35+
targetPort: 80
36+
37+
38+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Stages
2+
# Stage-1:
3+
# Task-1: Build Docker Image and push to Docker Registry
4+
# Task-2: Copy kube-manifest files to Build Artifact Directory
5+
# Task-3: Publish build articats to Azure Pipelines
6+
# Task-4: Verify contents in System Source Directory
7+
# Task-5: Verify contents in Build Artifact Directory
8+
# Stage-2:
9+
# Task-1: Download Build Artifacts
10+
# Task-2: Deploy to Kubernetes
11+
12+
trigger:
13+
- master
14+
15+
variables:
16+
tag: '$(Build.BuildId)'
17+
18+
stages:
19+
# Build Stage
20+
- stage: Build
21+
displayName: Build stage
22+
jobs:
23+
- job: Build
24+
displayName: Build job
25+
pool:
26+
vmImage: 'ubuntu-latest'
27+
steps:
28+
# List files from System Default Working Directory
29+
- bash: echo Initial Source Directory Files; ls -R $(System.DefaultWorkingDirectory);
30+
- bash: echo Image Tag $(Build.BuildId)
31+
# Task: Docker (Build and Push Images to Docker Registry)
32+
- task: Docker@2
33+
inputs:
34+
containerRegistry: 'DockerHubStackSimplify'
35+
repository: 'stacksimplify/aks-github-dockerhub-nginxapp'
36+
command: 'buildAndPush'
37+
Dockerfile: '**/Dockerfile'
38+
tags: '$(tag)'
39+
- bash: echo Before copying to Build Artifact Directory; ls -R $(Build.ArtifactStagingDirectory)
40+
# Task: Copy files (Copy files from a source folder to target folder)
41+
- task: CopyFiles@2
42+
inputs:
43+
SourceFolder: '$(System.DefaultWorkingDirectory)/kube-manifests'
44+
Contents: '**'
45+
TargetFolder: '$(Build.ArtifactStagingDirectory)'
46+
OverWrite: true
47+
# List files from Build Artifact Staging Directory - After Copy
48+
- bash: echo After copying to Build Artifact Directory; ls -R $(Build.ArtifactStagingDirectory)
49+
# Task: Publish build artifacts (Publish build to Azure Pipelines)
50+
- task: PublishBuildArtifacts@1
51+
inputs:
52+
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
53+
ArtifactName: 'kube-manifests'
54+
publishLocation: 'Container'
55+
- bash: echo After Published Build Artifacts to Pipeline; ls -R $(Build.ArtifactStagingDirectory)
56+
57+
# Deploy Stage
58+
- stage: Deploy
59+
displayName: Deploy image
60+
jobs:
61+
- job: Deploy
62+
displayName: Deploy
63+
pool:
64+
vmImage: 'ubuntu-latest'
65+
steps:
66+
- bash: echo Before Download build Artifacts Step; ls -R $(Build.ArtifactStagingDirectory)
67+
# Task: Download build artifacts (Download files that were saved as artifacts of a completed build)
68+
- task: DownloadBuildArtifacts@0
69+
inputs:
70+
buildType: 'current'
71+
downloadType: 'single'
72+
artifactName: 'kube-manifests'
73+
itemPattern: '**/*.yml'
74+
downloadPath: '$(System.ArtifactsDirectory)'
75+
- bash: echo After Download build Artifacts Step; ls -R $(Build.ArtifactStagingDirectory)
76+
# Task: Deploy to Kubernetes (User Kubernetes manifest files to deploy to AKS cluster)
77+
- task: KubernetesManifest@0
78+
inputs:
79+
action: 'deploy'
80+
kubernetesServiceConnection: 'k8s-aksdemo1-svc-connection'
81+
namespace: 'default'
82+
manifests: '$(System.ArtifactsDirectory)/kube-manifests/*.yml'
83+
containers: 'stacksimplify/aks-github-dockerhub-nginxapp:$(tag)'
84+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Stages
2+
# Stage-1:
3+
# Task-1: Build Docker Image and push to Docker Registry
4+
# Task-2: Copy kube-manifest files to Build Artifact Directory
5+
# Task-3: Publish build articats to Azure Pipelines
6+
# Task-4: Verify contents in System Source Directory
7+
# Task-5: Verify contents in Build Artifact Directory
8+
# Stage-2:
9+
# Task-1: Download Build Artifacts
10+
# Task-2: Deploy to Kubernetes
11+
12+
trigger:
13+
- master
14+
15+
variables:
16+
tag: '$(Build.BuildId)'
17+
18+
stages:
19+
# Build Stage
20+
- stage: Build
21+
displayName: Build stage
22+
jobs:
23+
- job: Build
24+
displayName: Build job
25+
pool:
26+
vmImage: 'ubuntu-latest'
27+
steps:
28+
# List files from System Default Working Directory
29+
- bash: echo Initial Source Directory Files; ls -R $(System.DefaultWorkingDirectory);
30+
- bash: echo Image Tag $(Build.BuildId)
31+
# Task: Docker (Build and Push Images to Docker Registry)
32+
- task: Docker@2
33+
inputs:
34+
containerRegistry: 'DockerHubStackSimplify'
35+
repository: 'stacksimplify/aks-github-dockerhub-nginxapp'
36+
command: 'buildAndPush'
37+
Dockerfile: '**/Dockerfile'
38+
tags: '$(tag)'
39+
- bash: echo Before copying to Build Artifact Directory; ls -R $(Build.ArtifactStagingDirectory)
40+
# Task: Copy files (Copy files from a source folder to target folder)
41+
- task: CopyFiles@2
42+
inputs:
43+
SourceFolder: '$(System.DefaultWorkingDirectory)/kube-manifests'
44+
Contents: '**'
45+
TargetFolder: '$(Build.ArtifactStagingDirectory)'
46+
OverWrite: true
47+
# List files from Build Artifact Staging Directory - After Copy
48+
- bash: echo After copying to Build Artifact Directory; ls -R $(Build.ArtifactStagingDirectory)
49+
# Task: Publish build artifacts (Publish build to Azure Pipelines)
50+
- task: PublishBuildArtifacts@1
51+
inputs:
52+
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
53+
ArtifactName: 'kube-manifests'
54+
publishLocation: 'Container'
55+
- bash: echo After Published Build Artifacts to Pipeline; ls -R $(Build.ArtifactStagingDirectory)
56+
57+
# Deploy Stage
58+
- stage: Deploy
59+
displayName: Deploy image
60+
jobs:
61+
- job: Deploy
62+
displayName: Deploy
63+
pool:
64+
vmImage: 'ubuntu-latest'
65+
steps:
66+
- bash: echo Before Download build Artifacts Step; ls -R $(Build.ArtifactStagingDirectory)
67+
# Task: Download build artifacts (Download files that were saved as artifacts of a completed build)
68+
- task: DownloadBuildArtifacts@0
69+
inputs:
70+
buildType: 'current'
71+
downloadType: 'single'
72+
artifactName: 'kube-manifests'
73+
itemPattern: '**/*.yml'
74+
downloadPath: '$(System.ArtifactsDirectory)'
75+
- bash: echo After Download build Artifacts Step; ls -R $(Build.ArtifactStagingDirectory)
76+
# Task: Deploy to Kubernetes (User Kubernetes manifest files to deploy to AKS cluster)
77+
- task: KubernetesManifest@0
78+
inputs:
79+
action: 'deploy'
80+
kubernetesServiceConnection: 'k8s-aksdemo1-svc-connection'
81+
namespace: 'default'
82+
manifests: '$(System.ArtifactsDirectory)/kube-manifests/*.yml'
83+
containers: 'stacksimplify/aks-github-dockerhub-nginxapp:$(tag)'
84+

0 commit comments

Comments
 (0)