Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
be9f00d
Bump `charmbracelet/x/exp/teatest` version (#10742)
brooke-hamilton Oct 22, 2025
74fa1fc
Bump the go-dependencies group across 1 directory with 13 updates (#1…
dependabot[bot] Oct 22, 2025
509e2cd
Add submodule check to make build (#10738)
brooke-hamilton Oct 22, 2025
5aec96f
Go dependabot config for `mapgiego` and `testrp` (#10743)
brooke-hamilton Oct 23, 2025
7f44a32
Bump the go-dependencies group with 7 updates (#10744)
dependabot[bot] Oct 23, 2025
4f65556
Workflow schedule update for functional tests and long running tests …
brooke-hamilton Oct 23, 2025
78c10b8
Add Readme file to help generate bicep types under Radius.Core (#10746)
lakshmimsft Oct 24, 2025
eefa3e4
Bump the github-actions group with 2 updates (#10754)
dependabot[bot] Oct 27, 2025
e819c3f
Bump bicep-types from `093b31c` to `eb75ca1` (#10756)
dependabot[bot] Oct 28, 2025
72ac0e6
Bump the go-dependencies group with 10 updates (#10755)
dependabot[bot] Oct 28, 2025
5487f1b
Add entries to help register new applications type (#10760)
lakshmimsft Oct 30, 2025
0a1e7ba
Adding rad recipe-pack list and show commands (#10759)
vishwahiremat Nov 3, 2025
4a9871d
Update deprecated tool list names in code review prompt (#10770)
brooke-hamilton Nov 5, 2025
2f32aaf
update rc version (#10773)
sylvainsf Nov 5, 2025
56d030d
Sylvainsf/release 0.53.0 rc2 (#10776)
sylvainsf Nov 5, 2025
0218b4c
Adding rad recipe-pack delete command (#10768)
vishwahiremat Nov 6, 2025
9ceacbf
Remove bicep-tools from release (#10775)
sk593 Nov 6, 2025
0286362
Bump autorest and typespec (#10771)
DariuszPorowski Nov 6, 2025
18c02a5
Add support for rad deploy using recipepacks (#10747)
nithyatsu Nov 7, 2025
883d587
Add kubebuilder instruction to exclude format specifier (#10785)
nithyatsu Nov 7, 2025
43875f2
Bump bicep-types from `eb75ca1` to `42aa3c3` (#10791)
dependabot[bot] Nov 10, 2025
dc72523
create RC (#10794)
sylvainsf Nov 10, 2025
e0d5fde
update release to 0.53.0 (#10798)
sylvainsf Nov 12, 2025
97fd9ad
Fix duplicated verbs on rbac for dynamic-rp (#10749)
filipevrevez Nov 12, 2025
435d8a6
Bump github.com/containerd/containerd from 1.7.28 to 1.7.29 (#10778)
dependabot[bot] Nov 12, 2025
b8f69b5
Bump the magpie-go-dependencies group across 1 directory with 4 updat…
dependabot[bot] Nov 13, 2025
1b00217
Add golang instruction (#10808)
DariuszPorowski Nov 13, 2025
0742eb6
Add CanNotDelete lock to LRT infrastructure (#10811)
kachawla Nov 14, 2025
f452b96
Fix `rad workspace show` errors out if there is no current workspace …
brooke-hamilton Nov 14, 2025
44c7a25
Restores the skip list from cache (if it exists) (#10810)
nithyatsu Nov 14, 2025
0425866
Bump the npm_and_yarn group across 2 directories with 2 updates (#10818)
dependabot[bot] Nov 14, 2025
52d06d9
Standardize versions and set Source of Truth on GitHub Actions (#10817)
DariuszPorowski Nov 16, 2025
8692841
Replace Gitea with custom git http backend (#10563)
willdavsmith Nov 17, 2025
bf418fb
Bump the go-dependencies group across 1 directory with 31 updates (#1…
nithyatsu Nov 17, 2025
02926c1
end to end tests for recipe packs (#10805)
nithyatsu Nov 17, 2025
7ec3def
Bump js-yaml from 3.14.1 to 3.14.2 in /hack/bicep-types-radius/src/au…
dependabot[bot] Nov 17, 2025
f001d3c
feat(copilot): add gh workflows and shell instructions (#10784)
DariuszPorowski Nov 18, 2025
bdbaf37
Fix nil pointer dereference by setting Kind field in Azure credential…
kachawla Nov 18, 2025
f6d0769
Add GNU Makefile best practices instructions (#10814)
brooke-hamilton Nov 19, 2025
f1c86cc
remove description from recipe pack resource (#10841)
nithyatsu Nov 19, 2025
37314cd
feat(copilot): add docker instructions (#10820)
DariuszPorowski Nov 19, 2025
5a82981
feat(copilot): add bicep instructions (#10819)
DariuszPorowski Nov 19, 2025
44ce8d8
ci(workflows): pin actions to full sha (#10840)
DariuszPorowski Nov 19, 2025
2bbc48e
Bump @typespec/http from 1.5.0 to 1.6.0 in /typespec
dependabot[bot] Nov 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .devcontainer/post-create.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@ go install go.uber.org/mock/mockgen@v0.4.0
# Prerequisites for Code Generation, see https://github.com/radius-project/radius/tree/main/docs/contributing/contributing-code/contributing-code-prerequisites#code-generation
cd typespec || exit
npm ci
npm install -g autorest
npm install -g oav
npm install -g autorest@3.7.2
npm install -g oav@4.0.2
8 changes: 5 additions & 3 deletions .github/actions/copy-deployment-engine-image/action.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-action.json
---
name: Copy Deployment Engine image
description: Copy a deployment engine image from Azure Container Registry to GitHub Container Registry.
inputs:
Expand Down Expand Up @@ -35,10 +37,10 @@ runs:
using: composite
steps:
- name: Set up Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1

- name: Log in to Azure
uses: azure/login@v2
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0
with:
client-id: ${{ env.DE_CONTAINER_AZURE_CLIENT_ID }}
tenant-id: ${{ env.DE_CONTAINER_AZURE_TENANT_ID }}
Expand All @@ -50,7 +52,7 @@ runs:
az acr login --name "${{ inputs.acr-name }}"
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ${{ inputs.destination-registry }}
username: ${{ inputs.ghcr-username }}
Expand Down
10 changes: 6 additions & 4 deletions .github/actions/create-kind-cluster/action.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-action.json
---
name: "Create a KinD cluster"
description: |
Create a KinD cluster.
Expand Down Expand Up @@ -31,7 +33,7 @@ inputs:
required: true
default: "5000"
runs:
using: "composite"
using: composite
steps:
- name: Install KinD
shell: bash
Expand All @@ -45,7 +47,7 @@ runs:
run: |
# https://kind.sigs.k8s.io/docs/user/local-registry/
# Create the cluster with necessary configurations
# to expose 30080 port for Gitea
# to expose 30080 port for the local Git server
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
Expand All @@ -62,7 +64,7 @@ runs:
shell: bash
run: |
# Create the cluster with necessary configurations
# to expose 30080 port for Gitea
# to expose 30080 port for the local Git server
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
Expand Down Expand Up @@ -109,7 +111,7 @@ runs:
shell: bash
run: |
# Create the cluster with necessary configurations for the secure local registry
# and to expose 30080 port for Gitea
# and to expose 30080 port for the local Git server
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
Expand Down
4 changes: 3 additions & 1 deletion .github/actions/create-local-registry/action.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-action.json
---
name: "Create a local registry"
description: |
This action creates a local registry for the images to be pushed to.
Expand Down Expand Up @@ -25,7 +27,7 @@ outputs:
description: "The temporary directory where the certificates are stored"
value: ${{ steps.create-temp-cert-dir.outputs.TEMP_CERT_DIR }}
runs:
using: "composite"
using: composite
steps:
- name: Create temporary directory for certificates
if: ${{ inputs.secure == 'true' }}
Expand Down
8 changes: 5 additions & 3 deletions .github/actions/download-pr-data-artifact/action.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-action.json
---
name: "Download PR number saved as an artifact"
description: |
This action can be used together with save-pr-as-artifact custom action which uploads the PR number as an artifact.
Expand All @@ -7,10 +9,10 @@ outputs:
value: ${{ steps.set-pr-number.outputs.pr_number }}
description: The PR number downloaded from the artifact
runs:
using: "composite"
using: composite
steps:
- name: Download artifact
uses: actions/github-script@v7
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
Expand All @@ -34,7 +36,7 @@ runs:
run: unzip pr_number.zip
- name: Set PR number
id: set-pr-number
uses: actions/github-script@v7
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
let fs = require('fs');
Expand Down
7 changes: 5 additions & 2 deletions .github/actions/install-flux/action.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-action.json
---
name: "Install Flux CLI and Source Controller"
description: "Installs Flux CLI and Source Controller."
inputs:
Expand All @@ -6,12 +8,13 @@ inputs:
required: false
default: "2.6.4"
runs:
using: "composite"
using: composite
steps:
- name: Install Flux CLI
uses: fluxcd/flux2/action@main
uses: fluxcd/flux2/action@b6e76ca2534f76dcb8dd94fb057cdfa923c3b641 # v2.7.3
with:
version: ${{ inputs.version }}

- name: Install Flux Source Controller
shell: bash
run: |
Expand Down
25 changes: 25 additions & 0 deletions .github/actions/install-git-http-backend/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# yaml-language-server: $schema=https://www.schemastore.org/github-action.json
---
name: "Install Git HTTP Backend"
description: "Installs a git HTTP backend, configures basic auth, and exposes it inside the cluster using alpine/git."
inputs:
git-username:
description: "Username for basic authentication"
required: true
git-password:
description: "Password for basic authentication"
required: true
namespace:
description: "Namespace to deploy the git-http-backend into"
required: false
default: "git-http-backend"
image:
description: "Container image to use for the git backend"
required: false
default: "alpine/git:2.45.2"
runs:
using: composite
steps:
- name: Install git-http-backend
shell: bash
run: .github/actions/install-git-http-backend/install-git-http-backend.sh "${{ inputs.git-username }}" "${{ inputs.git-password }}" "${{ inputs.namespace }}" "${{ inputs.image }}"
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#!/bin/sh
# Bootstrap script for the alpine/git container. Installs nginx/fcgiwrap, renders configuration from
# templates, and launches the Git HTTP backend suitable for Radius functional tests.
set -eu

# Ensure nginx + fcgiwrap + git HTTP backend bits are present (alpine/git is minimal by default).
apk add --no-cache nginx fcgiwrap spawn-fcgi apache2-utils gettext git-daemon

# Generate the basic-auth credentials picked up by nginx.
htpasswd -bc /etc/nginx/.htpasswd "${GIT_USERNAME}" "${GIT_PASSWORD}"

# fcgiwrap needs a UNIX socket; keep everything under /run/git-http.
SOCKET_DIR="/run/git-http"
export SOCKET_DIR

# Prepare writable directories for the socket and bare Git repos.
mkdir -p "${SOCKET_DIR}" "${GIT_SERVER_TEMP_DIR}"
chown -R nginx:nginx "${SOCKET_DIR}" "${GIT_SERVER_TEMP_DIR}"

# Allow nginx user to interact with repositories regardless of owner checks.
git config --system --add safe.directory "${GIT_SERVER_TEMP_DIR}"
git config --system --add safe.directory "${GIT_SERVER_TEMP_DIR}/*"

# Render the nginx configuration using the environment exported above.
envsubst '${GIT_SERVER_TEMP_DIR} ${SOCKET_DIR}' </config/nginx.conf.template >/etc/nginx/http.d/git.conf

# Start fcgiwrap (serves /usr/libexec/git-core/git-http-backend) and foreground nginx.
spawn-fcgi -s "${SOCKET_DIR}/fcgiwrap.sock" -M 766 -u nginx -g nginx /usr/bin/fcgiwrap
exec nginx -g 'daemon off;'
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
server {
# Reference docs:
# - Core directives: https://nginx.org/en/docs/http/ngx_http_core_module.html
# - FastCGI params: https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html
# - HTTP auth basic: https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html
#
# Expose the git-http-backend on port 3000 inside the cluster.
listen 3000;
server_name _;
root ${GIT_SERVER_TEMP_DIR};

# Require basic auth using credentials provisioned by the entrypoint script.
auth_basic "Git Server";
auth_basic_user_file /etc/nginx/.htpasswd;

location / {
client_max_body_size 0;
include fastcgi_params;

# Forward all requests to git-http-backend via fcgiwrap.
fastcgi_pass unix:${SOCKET_DIR}/fcgiwrap.sock;
fastcgi_param SCRIPT_FILENAME /config/git-http-backend-wrapper.sh;
fastcgi_param PATH_INFO $uri;
fastcgi_param SCRIPT_NAME $uri;
fastcgi_param GIT_PROJECT_ROOT ${GIT_SERVER_TEMP_DIR};
fastcgi_param GIT_HTTP_EXPORT_ALL 1;
fastcgi_param GIT_HTTP_MAX_REQUEST_BUFFER 1048576000;
fastcgi_param REMOTE_USER $remote_user;
fastcgi_param HTTP_AUTHORIZATION $http_authorization;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
set -eu

# Ensure PATH_INFO always starts with a leading slash to keep git-http-backend happy.
if [ "${PATH_INFO:-}" != "" ] && [ "${PATH_INFO#*/}" = "${PATH_INFO}" ]; then
PATH_INFO="/${PATH_INFO}"
export PATH_INFO
fi

# Default to exporting all repositories unless explicitly disabled.
export GIT_HTTP_EXPORT_ALL=${GIT_HTTP_EXPORT_ALL:-1}

exec /usr/libexec/git-core/git-http-backend
85 changes: 85 additions & 0 deletions .github/actions/install-git-http-backend/git-http-backend.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: git-http-backend
namespace: ${NAMESPACE}
labels:
app: git-http-backend
spec:
replicas: 1
selector:
matchLabels:
app: git-http-backend
template:
metadata:
labels:
app: git-http-backend
spec:
containers:
- name: git-http-backend
image: ${IMAGE}
imagePullPolicy: IfNotPresent
command:
- /bin/sh
- /config/entrypoint.sh
env:
- name: GIT_USERNAME
valueFrom:
secretKeyRef:
name: git-http-backend-auth
key: username
- name: GIT_PASSWORD
valueFrom:
secretKeyRef:
name: git-http-backend-auth
key: password
- name: GIT_SERVER_TEMP_DIR
value: ${SERVER_TEMP_DIR}
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 500m
memory: 256Mi
ports:
- containerPort: 3000
name: http
readinessProbe:
tcpSocket:
port: 3000
initialDelaySeconds: 5
periodSeconds: 5
livenessProbe:
tcpSocket:
port: 3000
initialDelaySeconds: 10
periodSeconds: 10
volumeMounts:
- name: config
mountPath: /config
- name: git-data
mountPath: ${SERVER_TEMP_DIR}
volumes:
- name: config
configMap:
name: git-http-backend-config
defaultMode: 0555
- name: git-data
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: git-http
namespace: ${NAMESPACE}
labels:
app: git-http-backend
spec:
selector:
app: git-http-backend
ports:
- name: http
port: 3000
targetPort: 3000
protocol: TCP
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#!/usr/bin/env bash
# Installs a Git HTTP backend backed by alpine/git and nginx.
set -euo pipefail

if [[ $# -lt 2 ]]; then
echo "Usage: $0 <git-username> <git-password> [namespace] [image]" >&2
exit 1
fi

SCRIPT_DIR=$(cd -- "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)

GIT_USERNAME=$1
GIT_PASSWORD=$2
NAMESPACE=${3:-git-http-backend}
IMAGE=${4:-${GIT_HTTP_IMAGE:-alpine/git:2.45.2}} # allow override via env or arg
SERVER_TEMP_DIR=${GIT_SERVER_TEMP_DIR:-/var/lib/git}

MANIFEST_TEMPLATE="${SCRIPT_DIR}/git-http-backend.yaml"
ENTRYPOINT_FILE="${SCRIPT_DIR}/git-http-backend-entrypoint.sh"
NGINX_TEMPLATE="${SCRIPT_DIR}/git-http-backend-nginx.conf"
WRAPPER_FILE="${SCRIPT_DIR}/git-http-backend-wrapper.sh"

for cmd in kubectl envsubst; do
if ! command -v "$cmd" >/dev/null 2>&1; then
echo "error: required command '$cmd' not found in PATH" >&2
exit 1
fi
done

ensure_namespace() {
kubectl create namespace "$1" --dry-run=client -o yaml | kubectl apply -f -
}

apply_basic_auth_secret() {
kubectl -n "$1" create secret generic git-http-backend-auth \
--type=kubernetes.io/basic-auth \
--from-literal=username="$2" \
--from-literal=password="$3" \
--dry-run=client -o yaml | kubectl apply -f -
}

apply_configmap() {
kubectl -n "$1" create configmap git-http-backend-config \
--from-file=entrypoint.sh="$2" \
--from-file=nginx.conf.template="$3" \
--from-file=git-http-backend-wrapper.sh="$4" \
--dry-run=client -o yaml | kubectl apply -f -
}

apply_workload() {
export NAMESPACE IMAGE SERVER_TEMP_DIR
envsubst '${NAMESPACE} ${IMAGE} ${SERVER_TEMP_DIR}' <"$1" | kubectl apply -f -
}

ensure_namespace "$NAMESPACE"
apply_basic_auth_secret "$NAMESPACE" "$GIT_USERNAME" "$GIT_PASSWORD"
apply_configmap "$NAMESPACE" "$ENTRYPOINT_FILE" "$NGINX_TEMPLATE" "$WRAPPER_FILE"
apply_workload "$MANIFEST_TEMPLATE"

kubectl rollout restart deployment/git-http-backend -n "$NAMESPACE" >/dev/null 2>&1 || true

kubectl rollout status deployment/git-http-backend -n "$NAMESPACE" --timeout=240s
Loading