2 Commits

Author SHA1 Message Date
4901890d0e Created pipeline for Jenkins in Kubernetes cluster 2025-06-12 19:02:29 +00:00
f55776916e Updated managed identity 2025-06-11 18:42:21 +00:00
4 changed files with 17 additions and 39 deletions

View File

@ -1,32 +0,0 @@
FROM debian:bookworm-slim
# Zapobiega interaktywnym promptom
ENV DEBIAN_FRONTEND=noninteractive
# Instalacja zależności systemowych
RUN apt-get update && apt-get install -y \
ca-certificates \
curl \
gnupg \
lsb-release \
apt-transport-https \
software-properties-common \
unzip \
bash \
&& rm -rf /var/lib/apt/lists/*
# Instalacja Azure CLI
RUN curl -sL https://aka.ms/InstallAzureCLIDeb | bash
# Instalacja kubectl (najświeższa stabilna wersja)
RUN curl -sLo /usr/local/bin/kubectl https://dl.k8s.io/release/v1.33.1/bin/linux/amd64/kubectl \
&& chmod +x /usr/local/bin/kubectl
# Instalacja kubelogin
RUN curl -sLo /tmp/kubelogin.zip https://github.com/Azure/kubelogin/releases/latest/download/kubelogin-linux-amd64.zip \
&& unzip -j /tmp/kubelogin.zip -d /usr/local/bin \
&& chmod +x /usr/local/bin/kubelogin \
&& rm /tmp/kubelogin.zip
# Domyślna komenda po starcie kontenera
CMD ["bash"]

View File

@ -1,6 +1,7 @@
pipeline { pipeline {
agent { agent {
kubernetes { kubernetes {
defaultContainer 'kubectl'
yamlFile '.jenkins/podTemplate.yaml' yamlFile '.jenkins/podTemplate.yaml'
} }
} }
@ -10,7 +11,6 @@ pipeline {
DEPLOY_FILES = 'namespace.yaml secret-store.yaml deploy.yaml ingress.yaml' DEPLOY_FILES = 'namespace.yaml secret-store.yaml deploy.yaml ingress.yaml'
NAMESPACE = 'user-microservice' NAMESPACE = 'user-microservice'
DEPLOYMENT = 'api' DEPLOYMENT = 'api'
CLIENT_ID = 'c302726f-fafb-4143-94c1-67a70975574a'
} }
stages { stages {
stage('Checkout') { stage('Checkout') {
@ -24,8 +24,12 @@ pipeline {
steps { steps {
container('kubectl') { container('kubectl') {
sh ''' sh '''
az login --identity --client-id ${CLIENT_ID} az login --identity
az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --overwrite-existing az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --overwrite-existing
'''
}
container('kubelogin') {
sh '''
kubelogin convert-kubeconfig -l azurecli kubelogin convert-kubeconfig -l azurecli
''' '''
} }

View File

@ -6,16 +6,22 @@ metadata:
spec: spec:
containers: containers:
- name: kubectl - name: kubectl
image: marcin00.azurecr.io/azure-cli-kubectl:latest image: mcr.microsoft.com/azure-cli:latest
command: command:
- cat - cat
tty: true tty: true
volumeMounts: volumeMounts:
- name: workspace-volume - name: azure-config
mountPath: /home/jenkins/agent mountPath: /root/.azure
- name: kubelogin
image: ghcr.io/int128/kubelogin:latest
command:
- cat
tty: true
volumes: volumes:
- name: workspace-volume - name: azure-config
emptyDir: {} emptyDir: {}
nodeSelector: nodeSelector:

View File

@ -81,7 +81,7 @@ spec:
spec: spec:
containers: containers:
- name: api - name: api
image: marcin00.azurecr.io/user-microservice:a79ae2d50f2fc3dfcf976eb2a8ebe32511ae4a33 image: marcin00.azurecr.io/user-microservice:76a351710fffe2be1ae10471bc1a2f511f481126
ports: ports:
- containerPort: 80 - containerPort: 80
env: env: