Skip to content

Commit f040c18

Browse files
committed
auto deploy config after upgrade and rebuild dind images
1 parent 48fc067 commit f040c18

2 files changed

Lines changed: 47 additions & 20 deletions

File tree

.github/workflows/docker-publish.yml

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77

88
env:
99
DSS_VERSION: 13.4.3
10+
KUBE_NAMESPACE: dataiku
1011

1112
jobs:
1213
build:
@@ -63,4 +64,40 @@ jobs:
6364
uses: actions/cache@v3
6465
with:
6566
path: /tmp/.buildx-cache
66-
key: ${{ runner.os }}-buildx-${{ github.sha }}
67+
key: ${{ runner.os }}-buildx-${{ github.sha }}
68+
69+
deploy:
70+
needs: build
71+
runs-on: ubuntu-latest
72+
environment: demo
73+
74+
steps:
75+
- name: Checkout repository
76+
uses: actions/checkout@v3
77+
78+
- name: Authenticate to Kubernetes cluster
79+
uses: azure/k8s-set-context@v3
80+
with:
81+
method: kubeconfig
82+
kubeconfig: ${{ secrets.KUBECONFIG }}
83+
84+
- name: Deploy to Kubernetes
85+
run: kubectl apply -f kubernetes/dataiku.yml
86+
87+
- name: Wait for Dataiku pod to be ready
88+
run: |
89+
kubectl wait --for=condition=Ready pod -l app=dataiku -n ${{ env.KUBE_NAMESPACE }} --timeout=300s
90+
POD_NAME=$(kubectl get pods -n ${{ env.KUBE_NAMESPACE }} -l app=dataiku -o jsonpath='{.items[0].metadata.name}')
91+
echo "POD_NAME=$POD_NAME" >> $GITHUB_ENV
92+
93+
- name: Login to Scaleway Registry inside Dataiku pod
94+
run: |
95+
kubectl -n ${{ env.KUBE_NAMESPACE }} exec -it ${{ env.POD_NAME }} -- docker login ${{ secrets.DOCKER_REGISTRY }} -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_PASSWORD }}
96+
97+
- name: Build and push base image
98+
run: |
99+
kubectl exec -it -n ${{ env.KUBE_NAMESPACE }} ${{ env.POD_NAME }} -- sh -c "cd dss;./bin/dssadmin build-base-image --type container-exec --with-py311 --with-py39 && docker tag $(docker images | grep 'dku-exec-base' | awk '{print $3}') ${{ secrets.DOCKER_REGISTRY }}/$(docker images | grep 'dku-exec-base' | awk '{print $1}'):dss-${{ env.DSS_VERSION }} && docker push ${{ secrets.DOCKER_REGISTRY }}/$(docker images | grep 'dku-exec-base' | awk '{print $1}'):dss-${{ env.DSS_VERSION }}"
100+
101+
- name: Build and push cde image
102+
run: |
103+
kubectl exec -it -n ${{ env.KUBE_NAMESPACE }} ${{ env.POD_NAME }} -- sh -c "cd dss;./bin/dssadmin build-base-image --type cde --with-py311 --with-py39 && docker tag $(docker images | grep 'dku-cde-base' | awk '{print $3}') ${{ secrets.DOCKER_REGISTRY }}/$(docker images | grep 'dku-cde-base' | awk '{print $1}'):dss-${{ env.DSS_VERSION }} && docker push ${{ secrets.DOCKER_REGISTRY }}/$(docker images | grep 'dku-cde-base' | awk '{print $1}'):dss-${{ env.DSS_VERSION }}"

README.md

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -106,28 +106,18 @@ Follow official Dataiku documentation for [Managed Kubernetes clusters](https://
106106

107107
If admin from UI don't work or if you want to enable custom registry and to publish Dockerfiles, here are some commands to use:
108108

109-
kubectl exec -it -n dataiku $(kubectl get -n dataiku all | grep Running | awk '{print $1}') -- bash
110-
cd dss
109+
DOCKER_REGISTRY=rg.fr-par.scw.cloud/mywonderfulregistry
110+
DOCKER_USER=myuser
111+
DOCKER_PASSWORD=mypassword
112+
DSS_VERSION=13.4.3
113+
114+
kubectl -n dataiku exec -it $(kubectl -n dataiku get pod | grep '2/2' | awk '{print $1}') -- docker login ${DOCKER_REGISTRY} -u ${DOCKER_USER} -p ${DOCKER_PASSWORD}
115+
111116
# build base image
112-
./bin/dssadmin build-base-image --type container-exec --with-py311 --with-py39
113-
# [... build log ...]
114-
# #43 naming to docker.io/library/dku-exec-base-ru4oxgmkpuoy4djmkkuvxfng:dss-13.4.3 0.0s done
115-
# #43 DONE 52.7s
116-
# 2025-01-25 00:11:23,029 INFO Done, cleaning up
117-
# Saved to /home/dataiku/dss/tmp/exec-docker-base-image.xxx/Dockerfile
118-
# Dockerfile should be committed to be audited by SAST tools
119-
docker login ${DOCKER_REGISTRY}
120-
docker tag dku-exec-base-ru4oxgmkpuoy4djmkkuvxfng:dss-13.4.3 ${DOCKER_REGISTRY}/dku-exec-base-ru4oxgmkpuoy4djmkkuvxfng:dss-13.4.3
121-
docker push ${DOCKER_REGISTRY}/dku-exec-base-ru4oxgmkpuoy4djmkkuvxfng:dss-13.4.3
122-
123-
Same thing for cde image
117+
kubectl exec -it -n dataiku $(kubectl -n dataiku get pod | grep '2/2' | awk '{print $1}') -- sh -c "cd dss;./bin/dssadmin build-base-image --type container-exec --with-py311 --with-py39 && docker tag dku-exec-base-ru4oxgmkpuoy4djmkkuvxfng:dss-${DSS_VERSION} ${DOCKER_REGISTRY}/dku-exec-base-ru4oxgmkpuoy4djmkkuvxfng:dss-${DSS_VERSION} && docker push ${DOCKER_REGISTRY}/dku-exec-base-ru4oxgmkpuoy4djmkkuvxfng:dss-${DSS_VERSION}"
124118

125119
# build cde image
126-
./bin/dssadmin build-base-image --type cde --with-py311 --with-py39
127-
# [... build logs ]
128-
docker login ${DOCKER_REGISTRY}
129-
docker tag dku-cde-base-ru4oxgmkpuoy4djmkkuvxfng:dss-13.4.3 ${DOCKER_REGISTRY}/dku-cde-base-ru4oxgmkpuoy4djmkkuvxfng:dss-13.4.3
130-
docker push ${DOCKER_REGISTRY}/dku-cde-base-ru4oxgmkpuoy4djmkkuvxfng:dss-13.4.3
120+
kubectl exec -it -n dataiku $(kubectl -n dataiku get pod | grep '2/2' | awk '{print $1}') -- sh -c "cd dss;./bin/dssadmin build-base-image --type cde --with-py311 --with-py39 && docker tag dku-cde-base-ru4oxgmkpuoy4djmkkuvxfng:dss-${DSS_VERSION} ${DOCKER_REGISTRY}/dku-cde-base-ru4oxgmkpuoy4djmkkuvxfng:dss-${DSS_VERSION} && docker push ${DOCKER_REGISTRY}/dku-cde-base-ru4oxgmkpuoy4djmkkuvxfng:dss-${DSS_VERSION}"
131121

132122
With those two files built, you will be able to enable following features in Kubernetes:
133123

0 commit comments

Comments
 (0)