Compare commits
28 Commits
4901890d0e
...
argoworkfl
Author | SHA1 | Date | |
---|---|---|---|
a9621cb31b | |||
4676091b3e | |||
595a8d02c0 | |||
2d03498232 | |||
be9ce58b17 | |||
30b8f0ed3f | |||
df3db82cfe | |||
20da47165f | |||
72d97db784 | |||
c69b0294fc | |||
062a08efc9 | |||
94466300ed | |||
6ba8b091b4 | |||
868b503813 | |||
c70ec36e90 | |||
f5c62e0b5e | |||
9256356a61 | |||
d3cc9a2775 | |||
8884a61575 | |||
c22fddffff | |||
68194995ff | |||
6d9602c961 | |||
e7bc2a962d | |||
698fa9e1d1 | |||
edc669507c | |||
87994b727f | |||
ebbad36f96 | |||
9f9086b0d6 |
90
.jenkins/Jenkinsfile
vendored
90
.jenkins/Jenkinsfile
vendored
@ -1,90 +0,0 @@
|
|||||||
pipeline {
|
|
||||||
agent {
|
|
||||||
kubernetes {
|
|
||||||
defaultContainer 'kubectl'
|
|
||||||
yamlFile '.jenkins/podTemplate.yaml'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
environment {
|
|
||||||
RESOURCE_GROUP = 'tst-aks-rg'
|
|
||||||
CLUSTER_NAME = 'build'
|
|
||||||
DEPLOY_FILES = 'namespace.yaml secret-store.yaml deploy.yaml ingress.yaml'
|
|
||||||
NAMESPACE = 'user-microservice'
|
|
||||||
DEPLOYMENT = 'api'
|
|
||||||
}
|
|
||||||
stages {
|
|
||||||
stage('Checkout') {
|
|
||||||
steps {
|
|
||||||
container('kubectl') {
|
|
||||||
checkout scm
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Login to Azure & Get Kubeconfig') {
|
|
||||||
steps {
|
|
||||||
container('kubectl') {
|
|
||||||
sh '''
|
|
||||||
az login --identity
|
|
||||||
az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --overwrite-existing
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
container('kubelogin') {
|
|
||||||
sh '''
|
|
||||||
kubelogin convert-kubeconfig -l azurecli
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Apply Kubernetes Resources') {
|
|
||||||
steps {
|
|
||||||
container('kubectl') {
|
|
||||||
script {
|
|
||||||
def files = DEPLOY_FILES.tokenize()
|
|
||||||
for (file in files) {
|
|
||||||
sh "kubectl apply -f ${file}"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Verify Deployment') {
|
|
||||||
steps {
|
|
||||||
container('kubectl') {
|
|
||||||
script {
|
|
||||||
// Waiting until all pods reach "ready" status
|
|
||||||
sh '''
|
|
||||||
echo "Waiting for deployment rollout..."
|
|
||||||
kubectl rollout status deployment/$DEPLOYMENT -n $NAMESPACE --timeout=60s
|
|
||||||
'''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stage('Health Check') {
|
|
||||||
steps {
|
|
||||||
container('kubectl') {
|
|
||||||
script {
|
|
||||||
// Check if app is healthy
|
|
||||||
def ingressUrl = "https://user-microservice.marcin00.pl/health"
|
|
||||||
sh """
|
|
||||||
echo "Checking app health ${ingressUrl}..."
|
|
||||||
for i in {1..30}; do
|
|
||||||
if curl -sf $ingressUrl; then
|
|
||||||
echo "Health check OK"
|
|
||||||
exit 0
|
|
||||||
else
|
|
||||||
echo "Health check failed. Retry \$i..."
|
|
||||||
sleep 5
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo "Health check failed."
|
|
||||||
exit 1
|
|
||||||
"""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Pod
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
some-label: jenkins-agent
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: kubectl
|
|
||||||
image: mcr.microsoft.com/azure-cli:latest
|
|
||||||
command:
|
|
||||||
- cat
|
|
||||||
tty: true
|
|
||||||
volumeMounts:
|
|
||||||
- name: azure-config
|
|
||||||
mountPath: /root/.azure
|
|
||||||
|
|
||||||
- name: kubelogin
|
|
||||||
image: ghcr.io/int128/kubelogin:latest
|
|
||||||
command:
|
|
||||||
- cat
|
|
||||||
tty: true
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
- name: azure-config
|
|
||||||
emptyDir: {}
|
|
||||||
|
|
||||||
nodeSelector:
|
|
||||||
kubernetes.io/os: linux
|
|
||||||
|
|
||||||
restartPolicy: Never
|
|
@ -81,7 +81,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: api
|
- name: api
|
||||||
image: marcin00.azurecr.io/user-microservice:76a351710fffe2be1ae10471bc1a2f511f481126
|
image: marcin00.azurecr.io/user-microservice:6966df2868a406f46347bc49a296458582872c8f
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
env:
|
env:
|
||||||
|
Reference in New Issue
Block a user