💚(ci) fix jobs after migration
The repository migration broke the CI. To fix it, we removed the dependency on the secrets repository.
This commit is contained in:
committed by
Anthony LC
parent
2491ad7142
commit
60dbf6c11d
86
.github/workflows/docker-hub.yml
vendored
86
.github/workflows/docker-hub.yml
vendored
@@ -19,26 +19,9 @@ jobs:
|
|||||||
build-and-push-backend:
|
build-and-push-backend:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
uses: actions/create-github-app-token@v1
|
|
||||||
id: app-token
|
|
||||||
with:
|
|
||||||
app-id: ${{ secrets.APP_ID }}
|
|
||||||
private-key: ${{ secrets.PRIVATE_KEY }}
|
|
||||||
owner: ${{ github.repository_owner }}
|
|
||||||
repositories: "impress,secrets"
|
|
||||||
-
|
-
|
||||||
name: Checkout repository
|
name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
token: ${{ steps.app-token.outputs.token }}
|
|
||||||
-
|
|
||||||
name: Load sops secrets
|
|
||||||
uses: rouja/actions-sops@main
|
|
||||||
with:
|
|
||||||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env
|
|
||||||
age-key: ${{ secrets.SOPS_PRIVATE }}
|
|
||||||
-
|
-
|
||||||
name: Docker meta
|
name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
@@ -48,7 +31,7 @@ jobs:
|
|||||||
-
|
-
|
||||||
name: Login to DockerHub
|
name: Login to DockerHub
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
run: echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin
|
run: echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_HUB_USER }}" --password-stdin
|
||||||
-
|
-
|
||||||
name: Run trivy scan
|
name: Run trivy scan
|
||||||
uses: numerique-gouv/action-trivy-cache@main
|
uses: numerique-gouv/action-trivy-cache@main
|
||||||
@@ -70,26 +53,9 @@ jobs:
|
|||||||
build-and-push-frontend:
|
build-and-push-frontend:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
uses: actions/create-github-app-token@v1
|
|
||||||
id: app-token
|
|
||||||
with:
|
|
||||||
app-id: ${{ secrets.APP_ID }}
|
|
||||||
private-key: ${{ secrets.PRIVATE_KEY }}
|
|
||||||
owner: ${{ github.repository_owner }}
|
|
||||||
repositories: "impress,secrets"
|
|
||||||
-
|
-
|
||||||
name: Checkout repository
|
name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
token: ${{ steps.app-token.outputs.token }}
|
|
||||||
-
|
|
||||||
name: Load sops secrets
|
|
||||||
uses: rouja/actions-sops@main
|
|
||||||
with:
|
|
||||||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env
|
|
||||||
age-key: ${{ secrets.SOPS_PRIVATE }}
|
|
||||||
-
|
-
|
||||||
name: Docker meta
|
name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
@@ -99,7 +65,7 @@ jobs:
|
|||||||
-
|
-
|
||||||
name: Login to DockerHub
|
name: Login to DockerHub
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
run: echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin
|
run: echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_HUB_USER }}" --password-stdin
|
||||||
-
|
-
|
||||||
name: Run trivy scan
|
name: Run trivy scan
|
||||||
uses: numerique-gouv/action-trivy-cache@main
|
uses: numerique-gouv/action-trivy-cache@main
|
||||||
@@ -122,26 +88,9 @@ jobs:
|
|||||||
build-and-push-y-provider:
|
build-and-push-y-provider:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
uses: actions/create-github-app-token@v1
|
|
||||||
id: app-token
|
|
||||||
with:
|
|
||||||
app-id: ${{ secrets.APP_ID }}
|
|
||||||
private-key: ${{ secrets.PRIVATE_KEY }}
|
|
||||||
owner: ${{ github.repository_owner }}
|
|
||||||
repositories: "impress,secrets"
|
|
||||||
-
|
-
|
||||||
name: Checkout repository
|
name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
token: ${{ steps.app-token.outputs.token }}
|
|
||||||
-
|
|
||||||
name: Load sops secrets
|
|
||||||
uses: rouja/actions-sops@main
|
|
||||||
with:
|
|
||||||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env
|
|
||||||
age-key: ${{ secrets.SOPS_PRIVATE }}
|
|
||||||
-
|
-
|
||||||
name: Docker meta
|
name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
@@ -151,7 +100,7 @@ jobs:
|
|||||||
-
|
-
|
||||||
name: Login to DockerHub
|
name: Login to DockerHub
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
run: echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin
|
run: echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_HUB_USER }}" --password-stdin
|
||||||
-
|
-
|
||||||
name: Run trivy scan
|
name: Run trivy scan
|
||||||
uses: numerique-gouv/action-trivy-cache@main
|
uses: numerique-gouv/action-trivy-cache@main
|
||||||
@@ -179,29 +128,12 @@ jobs:
|
|||||||
if: |
|
if: |
|
||||||
github.event_name != 'pull_request'
|
github.event_name != 'pull_request'
|
||||||
steps:
|
steps:
|
||||||
-
|
|
||||||
uses: actions/create-github-app-token@v1
|
|
||||||
id: app-token
|
|
||||||
with:
|
|
||||||
app-id: ${{ secrets.APP_ID }}
|
|
||||||
private-key: ${{ secrets.PRIVATE_KEY }}
|
|
||||||
owner: ${{ github.repository_owner }}
|
|
||||||
repositories: "impress,secrets"
|
|
||||||
-
|
-
|
||||||
name: Checkout repository
|
name: Checkout repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
token: ${{ steps.app-token.outputs.token }}
|
|
||||||
-
|
|
||||||
name: Load sops secrets
|
|
||||||
uses: rouja/actions-sops@main
|
|
||||||
with:
|
|
||||||
secret-file: secrets/numerique-gouv/impress/secrets.enc.env
|
|
||||||
age-key: ${{ secrets.SOPS_PRIVATE }}
|
|
||||||
-
|
-
|
||||||
name: Call argocd github webhook
|
name: Call argocd github webhook
|
||||||
run: |
|
run: |
|
||||||
data='{"ref": "'$GITHUB_REF'","repository": {"html_url":"'$GITHUB_SERVER_URL'/'$GITHUB_REPOSITORY'"}}'
|
data='{"ref": "'$GITHUB_REF'","repository": {"html_url":"'$GITHUB_SERVER_URL'/'$GITHUB_REPOSITORY'"}}'
|
||||||
sig=$(echo -n ${data} | openssl dgst -sha1 -hmac ''${ARGOCD_WEBHOOK_SECRET}'' | awk '{print "X-Hub-Signature: sha1="$2}')
|
sig=$(echo -n ${data} | openssl dgst -sha1 -hmac ''${{ secrets.ARGOCD_PREPROD_WEBHOOK_SECRET}}'' | awk '{print "X-Hub-Signature: sha1="$2}')
|
||||||
curl -X POST -H 'X-GitHub-Event:push' -H "Content-Type: application/json" -H "${sig}" --data "${data}" $ARGOCD_WEBHOOK_URL
|
curl -X POST -H 'X-GitHub-Event:push' -H "Content-Type: application/json" -H "${sig}" --data "${data}" ${{ vars.ARGOCD_PREPROD_WEBHOOK_URL }}
|
||||||
|
|||||||
22
.github/workflows/helmfile-linter.yaml
vendored
22
.github/workflows/helmfile-linter.yaml
vendored
@@ -2,6 +2,7 @@ name: Helmfile lint
|
|||||||
run-name: Helmfile lint
|
run-name: Helmfile lint
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- 'main'
|
- 'main'
|
||||||
@@ -13,10 +14,17 @@ jobs:
|
|||||||
image: ghcr.io/helmfile/helmfile:latest
|
image: ghcr.io/helmfile/helmfile:latest
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
uses: numerique-gouv/action-helmfile-lint@main
|
name: Checkout repository
|
||||||
with:
|
uses: actions/checkout@v4
|
||||||
app-id: ${{ secrets.APP_ID }}
|
-
|
||||||
age-key: ${{ secrets.SOPS_PRIVATE }}
|
name: Helmfile lint
|
||||||
private-key: ${{ secrets.PRIVATE_KEY }}
|
shell: bash
|
||||||
helmfile-src: "src/helm"
|
run: |
|
||||||
repositories: "impress,secrets"
|
set -e
|
||||||
|
HELMFILE=src/helm/helmfile.yaml
|
||||||
|
environments=$(awk '/environments:/ {flag=1; next} flag && NF {print} !NF {flag=0}' "$HELMFILE" | grep -E '^[[:space:]]{2}[a-zA-Z]+' | sed 's/^[[:space:]]*//;s/:.*//')
|
||||||
|
for env in $environments; do
|
||||||
|
echo "################### $env lint ###################"
|
||||||
|
helmfile -e $env -f $HELMFILE lint || exit 1
|
||||||
|
echo -e "\n"
|
||||||
|
done
|
||||||
|
|||||||
3
.gitmodules
vendored
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
|||||||
[submodule "secrets"]
|
|
||||||
path = secrets
|
|
||||||
url = ../secrets
|
|
||||||
|
|||||||
@@ -1,103 +1,2 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -o errexit
|
curl https://raw.githubusercontent.com/numerique-gouv/tools/refs/heads/main/kind/create_cluster.sh | bash -s -- impress
|
||||||
|
|
||||||
CURRENT_DIR=$(pwd)
|
|
||||||
|
|
||||||
echo "0. Create ca"
|
|
||||||
# 0. Create ca
|
|
||||||
mkcert -install
|
|
||||||
cd /tmp
|
|
||||||
mkcert "127.0.0.1.nip.io" "*.127.0.0.1.nip.io"
|
|
||||||
cd $CURRENT_DIR
|
|
||||||
|
|
||||||
echo "1. Create registry container unless it already exists"
|
|
||||||
# 1. Create registry container unless it already exists
|
|
||||||
reg_name='kind-registry'
|
|
||||||
reg_port='5001'
|
|
||||||
if [ "$(docker inspect -f '{{.State.Running}}' "${reg_name}" 2>/dev/null || true)" != 'true' ]; then
|
|
||||||
docker run \
|
|
||||||
-d --restart=unless-stopped -p "127.0.0.1:${reg_port}:5000" --network bridge --name "${reg_name}" \
|
|
||||||
registry:2
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "2. Create kind cluster with containerd registry config dir enabled"
|
|
||||||
# 2. Create kind cluster with containerd registry config dir enabled
|
|
||||||
# TODO: kind will eventually enable this by default and this patch will
|
|
||||||
# be unnecessary.
|
|
||||||
#
|
|
||||||
# See:
|
|
||||||
# https://github.com/kubernetes-sigs/kind/issues/2875
|
|
||||||
# https://github.com/containerd/containerd/blob/main/docs/cri/config.md#registry-configuration
|
|
||||||
# See: https://github.com/containerd/containerd/blob/main/docs/hosts.md
|
|
||||||
cat <<EOF | kind create cluster --config=-
|
|
||||||
kind: Cluster
|
|
||||||
apiVersion: kind.x-k8s.io/v1alpha4
|
|
||||||
containerdConfigPatches:
|
|
||||||
- |-
|
|
||||||
[plugins."io.containerd.grpc.v1.cri".registry]
|
|
||||||
config_path = "/etc/containerd/certs.d"
|
|
||||||
nodes:
|
|
||||||
- role: control-plane
|
|
||||||
image: kindest/node:v1.27.3
|
|
||||||
kubeadmConfigPatches:
|
|
||||||
- |
|
|
||||||
kind: InitConfiguration
|
|
||||||
nodeRegistration:
|
|
||||||
kubeletExtraArgs:
|
|
||||||
node-labels: "ingress-ready=true"
|
|
||||||
extraPortMappings:
|
|
||||||
- containerPort: 80
|
|
||||||
hostPort: 80
|
|
||||||
protocol: TCP
|
|
||||||
- containerPort: 443
|
|
||||||
hostPort: 443
|
|
||||||
protocol: TCP
|
|
||||||
- role: worker
|
|
||||||
image: kindest/node:v1.27.3
|
|
||||||
- role: worker
|
|
||||||
image: kindest/node:v1.27.3
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "3. Add the registry config to the nodes"
|
|
||||||
# 3. Add the registry config to the nodes
|
|
||||||
#
|
|
||||||
# This is necessary because localhost resolves to loopback addresses that are
|
|
||||||
# network-namespace local.
|
|
||||||
# In other words: localhost in the container is not localhost on the host.
|
|
||||||
#
|
|
||||||
# We want a consistent name that works from both ends, so we tell containerd to
|
|
||||||
# alias localhost:${reg_port} to the registry container when pulling images
|
|
||||||
REGISTRY_DIR="/etc/containerd/certs.d/localhost:${reg_port}"
|
|
||||||
for node in $(kind get nodes); do
|
|
||||||
docker exec "${node}" mkdir -p "${REGISTRY_DIR}"
|
|
||||||
cat <<EOF | docker exec -i "${node}" cp /dev/stdin "${REGISTRY_DIR}/hosts.toml"
|
|
||||||
[host."http://${reg_name}:5000"]
|
|
||||||
EOF
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "4. Connect the registry to the cluster network if not already connected"
|
|
||||||
# 4. Connect the registry to the cluster network if not already connected
|
|
||||||
# This allows kind to bootstrap the network but ensures they're on the same network
|
|
||||||
if [ "$(docker inspect -f='{{json .NetworkSettings.Networks.kind}}' "${reg_name}")" = 'null' ]; then
|
|
||||||
docker network connect "kind" "${reg_name}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "5. Document the local registry"
|
|
||||||
# 5. Document the local registry
|
|
||||||
# https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/generic/1755-communicating-a-local-registry
|
|
||||||
cat <<EOF | kubectl apply -f -
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: local-registry-hosting
|
|
||||||
namespace: kube-public
|
|
||||||
data:
|
|
||||||
localRegistryHosting.v1: |
|
|
||||||
host: "localhost:${reg_port}"
|
|
||||||
help: "https://kind.sigs.k8s.io/docs/user/local-registry/"
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "6. Install ingress-nginx"
|
|
||||||
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
|
|
||||||
kubectl -n ingress-nginx create secret tls mkcert --key /tmp/127.0.0.1.nip.io+1-key.pem --cert /tmp/127.0.0.1.nip.io+1.pem
|
|
||||||
kubectl -n ingress-nginx patch deployments.apps ingress-nginx-controller --type 'json' -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value":"--default-ssl-certificate=ingress-nginx/mkcert"}]'
|
|
||||||
|
|||||||
1
secrets
1
secrets
Submodule secrets deleted from 38594182e8
@@ -1,62 +0,0 @@
|
|||||||
djangoSuperUserEmail: ENC[AES256_GCM,data:7b1xfYmr1g0RlBmsHBRA39ZPV/6+1DrtHQ==,iv:/GW7oLxPTZYmRWVPvyAQMoZl1owHM4Fo0XAOtyEh2rA=,tag:DaqoW+dglyAOXMm5+mrDfA==,type:str]
|
|
||||||
djangoSuperUserPass: ENC[AES256_GCM,data:RQgX,iv:q3CdfmwGfHSTjLXTimDk/1MyoFLviRuwmZa2E7GUzhY=,tag:HCtdtqgSxdJIHFhI8xpegQ==,type:str]
|
|
||||||
djangoSecretKey: ENC[AES256_GCM,data:9fr7VwwXN6+9+rdDtgeDuEbq6R2Gb0JhifUgxTPVbd4usFQv1AUVkxF40fu5nYBmM8vk,iv:X44837MB7NQZ1J0o0JPDK+2g5eqbCzo9mDPJTz/bKSk=,tag:Ju4l5Pi8ccNASdiwFVFKgg==,type:str]
|
|
||||||
oidc:
|
|
||||||
clientId: ENC[AES256_GCM,data:wndPCbysbWDybdHglcG+wkMWk1rrD40hKqFxct9T3TLEGOk/,iv:RH1OdBX1GYIT90sSq0AGz49fFi6dL0m49Pegs6Ko9tQ=,tag:/tKytQwoZkBX1Tf96gAjIA==,type:str]
|
|
||||||
clientSecret: ENC[AES256_GCM,data:MUJ0wsg+LC2QZ1jZ0Twd3FS3dQevmJq9/97qVI3ARHuJIVlQz0Qah4vE7/iR+sn7ME2o1s1AzV4c1Yx/F3nHBg==,iv:LvinICSzF/8EvrHZD4Jp6lt7g3yxSOEgVHPrc3SShjo=,tag:yvkyyBXmhEkmGL7jZevUCA==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age15fyxdwmg5mvldtqqus87xspuws2u0cpvwheehrtvkexj4tnsqqysw6re2x
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMMjFCeWhkUmRWTnlIM1JM
|
|
||||||
dVFock1DWmtXQnpQZWZMWW1YdndhSS93MlVFCmxKVDUwOUt0NjJIZiswSm5aRi9U
|
|
||||||
VEllelBZVmFKdVFzcVJPUm50VHo5RTgKLS0tIDlkU3htTEdSREFOSUxlTGVtUm1n
|
|
||||||
RzJZbzhFcDNZKzdxMWFHTWx6Uy9GVFkKTw8LbhzAACp0NUHDfNcXpZyr2pJyNxxw
|
|
||||||
C7j/UB0cAejlSJHaUUiZ6TEcslXRpqnNagwUw4z/uzo7m4temay22A==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age16hnlml8yv4ynwy0seer57g8qww075crd0g7nsundz3pj4wk7m3vqftszg7
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQQjBNMnVlNURQVWdjSyty
|
|
||||||
RGozcmN5eTUwRHJIWnhhc1E3U1NXQ3AwTWxBCnFjbmJNZnFiRVJ6VHhmQmt1Vk5n
|
|
||||||
OTVXWVh3RzhoMWNrbUl6OHphTjFLQVUKLS0tIGJjUlNhK0dHQ2R3SCtrbTRnaFJT
|
|
||||||
Q1pyRXhSVm8xQWk2NG1MK0srVU1pL2sKkoxGCM00UM2leTNCn5H8499uwJw1NIXs
|
|
||||||
PoRNgplehrHFptrAwGEpSYMXbxu88N7EWa/rtOp+sHWK5zpxscMkjA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1plkp8td6zzfcavjusmsfrlk54t9vn8jjxm8zaz7cmnr7kzl2nfnsd54hwg
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzYnpkYnJnYnJjVFRHRzRa
|
|
||||||
N09JOXVnQkVrcVcwdk9kR1k1azNib2lkMVZFCmhvOHlpVnJ0RlRpYWZ1TkVoaklV
|
|
||||||
NmNzY3BEeWN1MUtKWmZFT2RaMUxBRW8KLS0tIG92ZmhsZ29LSkRSREhiaG9kWXhH
|
|
||||||
akREb0ttYVpNWTJHb1pjaWRFbWpxUjgKgZp3cN2rZw4ktbpb5cUnDEtsT/KWszGi
|
|
||||||
pmpJHgsMADigyUc+Pjw+1pwpn0FtXVEXGedbf8bBuJavvbS2PuJBsg==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age12g6f5fse25tgrwweleh4jls3qs52hey2edh759smulwmk5lnzadslu2cp3
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxaHZJeStiVnBzTGNTNzdo
|
|
||||||
UDFVTU51ZWp0WWorUnBlSzVBSU9IU2JnbUNNCkpMZGdNV3FUYkZOcWNLK0JWci81
|
|
||||||
WGNwYi9Jb0QrV0lkUzNJWTcrUjIzUmMKLS0tIHlTKzNsVzNsSGFuYjJ0RFp0Y1Nr
|
|
||||||
a1VOcDBPTTYvNjkxN092N1UrYk1CM2cKNifC3ZLOrFTFKA9iKg8nPpZb+3DxnTwq
|
|
||||||
grsrxQa40b/Vv/aPoiPBMeSENDcH48X/EhMFNKX7dvl+7HEaY+QPlA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
- recipient: age1hnhuzj96ktkhpyygvmz0x9h8mfvssz7ss6emmukags644mdhf4msajk93r
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoZ2ZlcllJeGlKUDNxUk1w
|
|
||||||
ekZ3TSttaXREV1FBRWwzNW54cjlYbHpLdWpRCnhSL2hEVVBEWEJKQWF0YTk1YzhJ
|
|
||||||
RTBGN25sT0hBM3V4QndiTVkveDBwQ2cKLS0tIEdoZGRLRXdCME1wcUJHQXhtSHBQ
|
|
||||||
UVEyNUVIanF6Z3ZSUjU1aTk0NFRBR0EKGuH5vzOV9lP/qRew0maECapKtLILaf/4
|
|
||||||
XoSgPnjh8pIbJG7i9VKnFORlzkNJ6OPhZlX3ax15hd1qQv0PSCMBDA==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2024-11-02T06:36:16Z"
|
|
||||||
mac: ENC[AES256_GCM,data:CFU67noumihiYd0zSQex6Bgs5e/w3v3a9Ywd2XX53mx6W16w8DGyMykjaBzwX+wKC9oTqEmBXmmixf8NpQRuG9owcf9GIsFy1cK+69y+ISQINxBqxMvYouaC7UQeywpC1b9gHw7sVU1GCAiY6Ha+lPHvEavelbGWn/MSVyaBB2k=,iv:m1ShIjNGFjcC0N5mjvhbgxnVN7PcpSkBxMquUlsROCk=,tag:XTNxFRMQslbpvbL9gzMxHA==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.9.0
|
|
||||||
@@ -1,3 +1,12 @@
|
|||||||
|
djangoSecretKey: &djangoSecretKey "lkjsdlfkjsldkfjslkdfjslkdjfslkdjf"
|
||||||
|
djangoSuperUserEmail: admin@example.com
|
||||||
|
djangoSuperUserPass: admin
|
||||||
|
aiApiKey: changeme
|
||||||
|
aiBaseUrl: changeme
|
||||||
|
oidc:
|
||||||
|
clientId: impress
|
||||||
|
clientSecret: ThisIsAnExampleKeyForDevPurposeOnly
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: localhost:5001/impress-backend
|
repository: localhost:5001/impress-backend
|
||||||
pullPolicy: Always
|
pullPolicy: Always
|
||||||
@@ -6,13 +15,12 @@ image:
|
|||||||
backend:
|
backend:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
envVars:
|
envVars:
|
||||||
COLLABORATION_API_URL: https://impress.127.0.0.1.nip.io/collaboration/api/
|
|
||||||
COLLABORATION_SERVER_SECRET: my-secret
|
COLLABORATION_SERVER_SECRET: my-secret
|
||||||
DJANGO_CSRF_TRUSTED_ORIGINS: https://impress.127.0.0.1.nip.io
|
DJANGO_CSRF_TRUSTED_ORIGINS: https://impress.127.0.0.1.nip.io
|
||||||
DJANGO_CONFIGURATION: Feature
|
DJANGO_CONFIGURATION: Feature
|
||||||
DJANGO_ALLOWED_HOSTS: impress.127.0.0.1.nip.io
|
DJANGO_ALLOWED_HOSTS: impress.127.0.0.1.nip.io
|
||||||
DJANGO_SERVER_TO_SERVER_API_TOKENS: secret-api-key
|
DJANGO_SERVER_TO_SERVER_API_TOKENS: secret-api-key
|
||||||
DJANGO_SECRET_KEY: {{ .Values.djangoSecretKey }}
|
DJANGO_SECRET_KEY: *djangoSecretKey
|
||||||
DJANGO_SETTINGS_MODULE: impress.settings
|
DJANGO_SETTINGS_MODULE: impress.settings
|
||||||
DJANGO_SUPERUSER_PASSWORD: admin
|
DJANGO_SUPERUSER_PASSWORD: admin
|
||||||
DJANGO_EMAIL_BRAND_NAME: "La Suite Numérique"
|
DJANGO_EMAIL_BRAND_NAME: "La Suite Numérique"
|
||||||
@@ -23,19 +31,17 @@ backend:
|
|||||||
LOGGING_LEVEL_HANDLERS_CONSOLE: ERROR
|
LOGGING_LEVEL_HANDLERS_CONSOLE: ERROR
|
||||||
LOGGING_LEVEL_LOGGERS_ROOT: INFO
|
LOGGING_LEVEL_LOGGERS_ROOT: INFO
|
||||||
LOGGING_LEVEL_LOGGERS_APP: INFO
|
LOGGING_LEVEL_LOGGERS_APP: INFO
|
||||||
OIDC_OP_JWKS_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/jwks
|
|
||||||
OIDC_OP_AUTHORIZATION_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/authorize
|
|
||||||
OIDC_OP_TOKEN_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/token
|
|
||||||
OIDC_OP_USER_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/userinfo
|
|
||||||
OIDC_OP_LOGOUT_ENDPOINT: https://fca.integ01.dev-agentconnect.fr/api/v2/session/end
|
|
||||||
OIDC_RP_CLIENT_ID: {{ .Values.oidc.clientId }}
|
|
||||||
OIDC_RP_CLIENT_SECRET: {{ .Values.oidc.clientSecret }}
|
|
||||||
OIDC_RP_SIGN_ALGO: RS256
|
|
||||||
OIDC_RP_SCOPES: "openid email given_name usual_name"
|
|
||||||
USER_OIDC_FIELD_TO_SHORTNAME: "given_name"
|
USER_OIDC_FIELD_TO_SHORTNAME: "given_name"
|
||||||
USER_OIDC_FIELDS_TO_FULLNAME: "given_name,usual_name"
|
USER_OIDC_FIELDS_TO_FULLNAME: "given_name,usual_name"
|
||||||
OIDC_REDIRECT_ALLOWED_HOSTS: https://impress.127.0.0.1.nip.io
|
OIDC_OP_JWKS_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/impress/protocol/openid-connect/certs
|
||||||
OIDC_AUTH_REQUEST_EXTRA_PARAMS: "{'acr_values': 'eidas1'}"
|
OIDC_OP_AUTHORIZATION_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/impress/protocol/openid-connect/auth
|
||||||
|
OIDC_OP_TOKEN_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/impress/protocol/openid-connect/token
|
||||||
|
OIDC_OP_USER_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/impress/protocol/openid-connect/userinfo
|
||||||
|
OIDC_OP_LOGOUT_ENDPOINT: https://keycloak.127.0.0.1.nip.io/realms/impress/protocol/openid-connect/logout
|
||||||
|
OIDC_RP_CLIENT_ID: impress
|
||||||
|
OIDC_RP_CLIENT_SECRET: ThisIsAnExampleKeyForDevPurposeOnly
|
||||||
|
OIDC_RP_SIGN_ALGO: RS256
|
||||||
|
OIDC_RP_SCOPES: "openid email"
|
||||||
LOGIN_REDIRECT_URL: https://impress.127.0.0.1.nip.io
|
LOGIN_REDIRECT_URL: https://impress.127.0.0.1.nip.io
|
||||||
LOGIN_REDIRECT_URL_FAILURE: https://impress.127.0.0.1.nip.io
|
LOGIN_REDIRECT_URL_FAILURE: https://impress.127.0.0.1.nip.io
|
||||||
LOGOUT_REDIRECT_URL: https://impress.127.0.0.1.nip.io
|
LOGOUT_REDIRECT_URL: https://impress.127.0.0.1.nip.io
|
||||||
@@ -55,7 +61,6 @@ backend:
|
|||||||
STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage
|
STORAGES_STATICFILES_BACKEND: django.contrib.staticfiles.storage.StaticFilesStorage
|
||||||
Y_PROVIDER_API_BASE_URL: http://impress-y-provider:443/api/
|
Y_PROVIDER_API_BASE_URL: http://impress-y-provider:443/api/
|
||||||
Y_PROVIDER_API_KEY: my-secret
|
Y_PROVIDER_API_KEY: my-secret
|
||||||
|
|
||||||
migrate:
|
migrate:
|
||||||
command:
|
command:
|
||||||
- "/bin/sh"
|
- "/bin/sh"
|
||||||
@@ -80,6 +85,21 @@ backend:
|
|||||||
python manage.py createsuperuser --email admin@example.com --password admin
|
python manage.py createsuperuser --email admin@example.com --password admin
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
|
|
||||||
|
# Extra volume mounts to manage our local custom CA and avoid to set ssl_verify: false
|
||||||
|
extraVolumeMounts:
|
||||||
|
- name: certs
|
||||||
|
mountPath: /usr/local/lib/python3.12/site-packages/certifi/cacert.pem
|
||||||
|
subPath: cacert.pem
|
||||||
|
|
||||||
|
# Exra volumes to manage our local custom CA and avoid to set ssl_verify: false
|
||||||
|
extraVolumes:
|
||||||
|
- name: certs
|
||||||
|
configMap:
|
||||||
|
name: certifi
|
||||||
|
items:
|
||||||
|
- key: cacert.pem
|
||||||
|
path: cacert.pem
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
envVars:
|
envVars:
|
||||||
PORT: 8080
|
PORT: 8080
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
apiVersion: v2
|
|
||||||
name: extra
|
|
||||||
description: A Helm chart to add some manifests to impress
|
|
||||||
type: application
|
|
||||||
version: 1.10.0
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
apiVersion: core.libre.sh/v1alpha1
|
|
||||||
kind: Redis
|
|
||||||
metadata:
|
|
||||||
name: redis
|
|
||||||
namespace: {{ .Release.Namespace | quote }}
|
|
||||||
spec:
|
|
||||||
disableAuth: false
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
apiVersion: core.libre.sh/v1alpha1
|
|
||||||
kind: Postgres
|
|
||||||
metadata:
|
|
||||||
name: postgresql
|
|
||||||
namespace: {{ .Release.Namespace | quote }}
|
|
||||||
spec:
|
|
||||||
database: impress
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
apiVersion: core.libre.sh/v1alpha1
|
|
||||||
kind: Bucket
|
|
||||||
metadata:
|
|
||||||
name: impress-media-storage
|
|
||||||
namespace: {{ .Release.Namespace | quote }}
|
|
||||||
spec:
|
|
||||||
provider: data
|
|
||||||
versioned: true
|
|
||||||
@@ -4,6 +4,46 @@ repositories:
|
|||||||
oci: true
|
oci: true
|
||||||
|
|
||||||
releases:
|
releases:
|
||||||
|
- name: keycloak
|
||||||
|
installed: {{ eq .Environment.Name "dev" | toYaml }}
|
||||||
|
missingFileHandler: Warn
|
||||||
|
namespace: {{ .Namespace }}
|
||||||
|
chart: bitnami/keycloak
|
||||||
|
version: 17.3.6
|
||||||
|
values:
|
||||||
|
- postgresql:
|
||||||
|
auth:
|
||||||
|
username: keycloak
|
||||||
|
password: keycloak
|
||||||
|
database: keycloak
|
||||||
|
- extraEnvVars:
|
||||||
|
- name: KEYCLOAK_EXTRA_ARGS
|
||||||
|
value: "--import-realm"
|
||||||
|
- name: KC_HOSTNAME_URL
|
||||||
|
value: https://keycloak.127.0.0.1.nip.io
|
||||||
|
- extraVolumes:
|
||||||
|
- name: import
|
||||||
|
configMap:
|
||||||
|
name: docs-keycloak
|
||||||
|
- extraVolumeMounts:
|
||||||
|
- name: import
|
||||||
|
mountPath: /opt/bitnami/keycloak/data/import/
|
||||||
|
- auth:
|
||||||
|
adminUser: su
|
||||||
|
adminPassword: su
|
||||||
|
- proxy: edge
|
||||||
|
- ingress:
|
||||||
|
enabled: true
|
||||||
|
hostname: keycloak.127.0.0.1.nip.io
|
||||||
|
- extraDeploy:
|
||||||
|
- apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: docs-keycloak
|
||||||
|
data:
|
||||||
|
impress.json: |
|
||||||
|
{{ readFile "../../docker/auth/realm.json" | replace "http://localhost:3200" "https://impress.127.0.0.1.nip.io" | indent 14 }}
|
||||||
|
|
||||||
- name: postgres
|
- name: postgres
|
||||||
installed: {{ eq .Environment.Name "dev" | toYaml }}
|
installed: {{ eq .Environment.Name "dev" | toYaml }}
|
||||||
namespace: {{ .Namespace }}
|
namespace: {{ .Namespace }}
|
||||||
@@ -43,25 +83,14 @@ releases:
|
|||||||
password: pass
|
password: pass
|
||||||
architecture: standalone
|
architecture: standalone
|
||||||
|
|
||||||
- name: extra
|
|
||||||
installed: {{ ne .Environment.Name "dev" | toYaml }}
|
|
||||||
namespace: {{ .Namespace }}
|
|
||||||
chart: ./extra
|
|
||||||
secrets:
|
|
||||||
- env.d/{{ .Environment.Name }}/secrets.enc.yaml
|
|
||||||
|
|
||||||
- name: impress
|
- name: impress
|
||||||
version: {{ .Values.version }}
|
version: {{ .Values.version }}
|
||||||
namespace: {{ .Namespace }}
|
namespace: {{ .Namespace }}
|
||||||
chart: ./impress
|
chart: ./impress
|
||||||
values:
|
values:
|
||||||
- env.d/{{ .Environment.Name }}/values.impress.yaml.gotmpl
|
- env.d/{{ .Environment.Name }}/values.impress.yaml.gotmpl
|
||||||
secrets:
|
|
||||||
- env.d/{{ .Environment.Name }}/secrets.enc.yaml
|
|
||||||
|
|
||||||
environments:
|
environments:
|
||||||
dev:
|
dev:
|
||||||
values:
|
values:
|
||||||
- version: 1.10.0
|
- version: 1.10.0
|
||||||
secrets:
|
|
||||||
- env.d/{{ .Environment.Name }}/secrets.enc.yaml
|
|
||||||
|
|||||||
@@ -11,12 +11,8 @@ stringData:
|
|||||||
DJANGO_SUPERUSER_EMAIL: {{ .Values.djangoSuperUserEmail }}
|
DJANGO_SUPERUSER_EMAIL: {{ .Values.djangoSuperUserEmail }}
|
||||||
DJANGO_SUPERUSER_PASSWORD: {{ .Values.djangoSuperUserPass }}
|
DJANGO_SUPERUSER_PASSWORD: {{ .Values.djangoSuperUserPass }}
|
||||||
DJANGO_SECRET_KEY: {{ .Values.djangoSecretKey }}
|
DJANGO_SECRET_KEY: {{ .Values.djangoSecretKey }}
|
||||||
{{- if .Values.djangoEmailHostUser }}
|
|
||||||
DJANGO_EMAIL_HOST_USER: {{ .Values.djangoEmailHostUser }}
|
DJANGO_EMAIL_HOST_USER: {{ .Values.djangoEmailHostUser }}
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.djangoEmailHostPassword }}
|
|
||||||
DJANGO_EMAIL_HOST_PASSWORD: {{ .Values.djangoEmailHostPassword }}
|
DJANGO_EMAIL_HOST_PASSWORD: {{ .Values.djangoEmailHostPassword }}
|
||||||
{{- end }}
|
|
||||||
OIDC_RP_CLIENT_ID: {{ .Values.oidc.clientId }}
|
OIDC_RP_CLIENT_ID: {{ .Values.oidc.clientId }}
|
||||||
OIDC_RP_CLIENT_SECRET: {{ .Values.oidc.clientSecret }}
|
OIDC_RP_CLIENT_SECRET: {{ .Values.oidc.clientSecret }}
|
||||||
AI_API_KEY: {{ .Values.aiApiKey }}
|
AI_API_KEY: {{ .Values.aiApiKey }}
|
||||||
|
|||||||
Reference in New Issue
Block a user