Skip to content

Commit

Permalink
UDT - Remove Legacy Routing (#8205)
Browse files Browse the repository at this point in the history
# Description

1. Remove Legacy Routing. Update tests as necessary
2. Add global location, address to manifests. Include them in ucp
images.

## Type of change

- This pull request adds or changes features of Radius and has an
approved issue (#6688 ).

Part of: #6688 

## Contributor checklist
Please verify that the PR meets the following requirements, where
applicable:

- [ ] An overview of proposed schema changes is included in a linked
GitHub issue.
- [ ] A design document PR is created in the [design-notes
repository](https://github.com/radius-project/design-notes/), if new
APIs are being introduced.
- [ ] If applicable, design document has been reviewed and approved by
Radius maintainers/approvers.
- [ ] A PR for the [samples
repository](https://github.com/radius-project/samples) is created, if
existing samples are affected by the changes in this PR.
- [ ] A PR for the [documentation
repository](https://github.com/radius-project/docs) is created, if the
changes in this PR affect the documentation or any user facing updates
are made.
- [ ] A PR for the [recipes
repository](https://github.com/radius-project/recipes) is created, if
existing recipes are affected by the changes in this PR.

---------

Signed-off-by: lakshmimsft <[email protected]>
  • Loading branch information
lakshmimsft committed Jan 22, 2025
1 parent f81b546 commit 65ecc2f
Show file tree
Hide file tree
Showing 35 changed files with 512 additions and 328 deletions.
43 changes: 43 additions & 0 deletions .github/workflows/functional-test-cloud.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -657,6 +657,49 @@ jobs:
--set global.azureWorkloadIdentity.enabled=true \
--set global.aws.irsa.enabled=true
echo "*** Verify manifests are registered ***"
rm -f registermanifest_logs.txt
# Find the pod with container "ucp"
POD_NAME=$(
kubectl get pods -n radius-system \
-o jsonpath='{range .items[*]}{.metadata.name}{" "}{.spec.containers[*].name}{"\n"}{end}' \
| grep "ucp" \
| head -n1 \
| cut -d" " -f1
)
echo "Found ucp pod: $POD_NAME"
if [ -z "$POD_NAME" ]; then
echo "No pod with container 'ucp' found in namespace radius-system."
exit 1
fi
# Poll logs for up to iterations, 30 seconds each (upto 3 minutes total)
for i in {1..6}; do
kubectl logs "$POD_NAME" -n radius-system | tee registermanifest_logs.txt > /dev/null
# Exit on error
if grep -qi "error" registermanifest_logs.txt; then
echo "Error found in ucp logs."
exit 1
fi
# Check for success
if grep -q "Successfully registered manifests" registermanifest_logs.txt; then
echo "Successfully registered manifests - message found."
break
fi
echo "Logs not ready, waiting 30 seconds..."
sleep 30
done
# Final check to ensure success message was found
if ! grep -q "Successfully registered manifests" registermanifest_logs.txt; then
echo "Manifests not registered after 3 minutes."
exit 1
fi
echo "*** Create workspace, group and environment for test ***"
rad workspace create kubernetes
rad group create kind-radius
Expand Down
43 changes: 43 additions & 0 deletions .github/workflows/functional-test-noncloud.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -290,6 +290,49 @@ jobs:
echo "*** Installing Radius to Kubernetes ***"
eval $RAD_COMMAND
echo "*** Verify manifests are registered ***"
rm -f registermanifest_logs.txt
# Find the pod with container "ucp"
POD_NAME=$(
kubectl get pods -n radius-system \
-o jsonpath='{range .items[*]}{.metadata.name}{" "}{.spec.containers[*].name}{"\n"}{end}' \
| grep "ucp" \
| head -n1 \
| cut -d" " -f1
)
echo "Found ucp pod: $POD_NAME"
if [ -z "$POD_NAME" ]; then
echo "No pod with container 'ucp' found in namespace radius-system."
exit 1
fi
# Poll logs for up to iterations, 30 seconds each (upto 3 minutes total)
for i in {1..6}; do
kubectl logs "$POD_NAME" -n radius-system | tee registermanifest_logs.txt > /dev/null
# Exit on error
if grep -qi "error" registermanifest_logs.txt; then
echo "Error found in ucp logs."
exit 1
fi
# Check for success
if grep -q "Successfully registered manifests" registermanifest_logs.txt; then
echo "Successfully registered manifests - message found."
break
fi
echo "Logs not ready, waiting 30 seconds..."
sleep 30
done
# Final check to ensure success message was found
if ! grep -q "Successfully registered manifests" registermanifest_logs.txt; then
echo "Manifests not registered after 3 minutes."
exit 1
fi
echo "*** Create workspace, group and environment for test ***"
rad workspace create kubernetes
rad group create kind-radius
Expand Down
18 changes: 15 additions & 3 deletions build/docker.mk
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
DOCKER_REGISTRY?=$(shell whoami)
DOCKER_TAG_VERSION?=latest
IMAGE_SRC?=https://github.com/radius-project/radius
MANIFEST_DIR?=deploy/manifest/built-in-providers/self-hosted

##@ Docker Images

Expand Down Expand Up @@ -106,6 +107,17 @@ APPS_MAP := ucpd:./deploy/images/ucpd \
testrp:./test/testrp \
magpiego:./test/magpiego

# copy_manifests copies the manifests to the output directory
.PHONY: copy-manifests
copy-manifests:
@if [ ! -d "$(MANIFEST_DIR)" ] || [ -z "$$(ls -A $(MANIFEST_DIR))" ]; then \
echo "MANIFEST_DIR '$(MANIFEST_DIR)' does not exist or is empty"; \
exit 1; \
fi
@mkdir -p $(OUT_DIR)/manifest/built-in-providers/
@echo "Copying manifests from $(MANIFEST_DIR) to $(OUT_DIR)/manifest/built-in-providers/"
@cp -v $(MANIFEST_DIR)/* $(OUT_DIR)/manifest/built-in-providers/

# Function to extract the name and the directory of the Dockerfile from the app string
define parseApp
$(eval NAME := $(shell echo $(1) | cut -d: -f1))
Expand All @@ -132,15 +144,15 @@ DOCKER_PUSH_MULTI_TARGETS := $(foreach APP,$(APPS_MAP),$(eval $(call parseApp,$(

# targets to build development images
.PHONY: docker-build
docker-build: $(DOCKER_BUILD_TARGETS) ## Builds all Docker images.
docker-build: copy-manifests $(DOCKER_BUILD_TARGETS) ## Builds all Docker images.

.PHONY: docker-push
docker-push: $(DOCKER_PUSH_TARGETS) ## Pushes all Docker images (without building).

# targets to build and push multi arch images. If you run this target in your machine,
# ensure you have qemu and buildx installed by running make configure-buildx.
.PHONY: docker-multi-arch-build
docker-multi-arch-build: $(DOCKER_BUILD_MULTI_TARGETS) ## Builds all docker images for multiple architectures.
docker-multi-arch-build: copy-manifests $(DOCKER_BUILD_MULTI_TARGETS) ## Builds all docker images for multiple architectures.

.PHONY: docker-multi-arch-push
docker-multi-arch-push: $(DOCKER_PUSH_MULTI_TARGETS) ## Pushes all docker images for multiple architectures after building.
docker-multi-arch-push: copy-manifests $(DOCKER_PUSH_MULTI_TARGETS) ## Pushes all docker images for multiple architectures after building.
2 changes: 1 addition & 1 deletion cmd/ucpd/ucp-dev.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ initialization:
Microsoft.Resources: "http://localhost:5017"
kind: "UCPNative"
# This is the directory location which contains manifests to be registered.
manifestDirectory: ""
manifestDirectory: "manifest/built-in-providers/"

identity:
authMethod: default
Expand Down
2 changes: 1 addition & 1 deletion deploy/Chart/templates/ucp/configmaps.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ data:
- id: "/planes/aws/aws"
properties:
kind: "AWS"
manifestDirectory: ""
manifestDirectory: "/manifest/built-in-providers"
identity:
authMethod: UCPCredential
Expand Down
3 changes: 3 additions & 0 deletions deploy/images/ucpd/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ WORKDIR /
# Copy the application binary for the specified architecture
COPY ./linux_${TARGETARCH:-amd64}/release/ucpd /

# Copy the manifest files for the built-in providers
COPY ./manifest/built-in-providers/ /manifest/built-in-providers/

# Set the user to non-root (65532:65532 is the default non-root user in distroless)
USER 65532:65532

Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,40 @@
name: Applications.Core
location:
global:
"http://localhost:8080"
types:
containers:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: []
applications:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: []
environments:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: []
gateways:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: []
secretStores:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: []
extenders:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
volumes:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: []
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
name: Applications.Dapr
location:
global:
"http://localhost:8080"
types:
configurationStores:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
pubSubBrokers:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
secretStores:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
stateStores:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
name: Applications.Datastores
location:
global:
"http://localhost:8080"
types:
mongoDatabases:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
sqlDatabases:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
redisCaches:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
name: Applications.Messaging
location:
global:
"http://localhost:8080"
types:
rabbitMQQueues:
apiVersions:
"2025-01-01-preview":
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
12 changes: 12 additions & 0 deletions deploy/manifest/built-in-providers/dev/microsoft_resources.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Microsoft.Resources
location:
global:
"http://localhost:5017"
types:
deployments:
apiVersions:
"2020-10-01":
schema: {}
"2022-09-01":
schema: {}
capabilities: []
8 changes: 0 additions & 8 deletions deploy/manifest/built-in-providers/microsoft_resources.yaml

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Applications.Core
location:
global:
"http://applications-rp.radius-system:5443"
types:
containers:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: []
applications:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: []
environments:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: []
gateways:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: []
secretStores:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: []
extenders:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
volumes:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: []
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Applications.Dapr
location:
global:
"http://applications-rp.radius-system:5443"
types:
configurationStores:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
pubSubBrokers:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
secretStores:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
stateStores:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Applications.Datastores
location:
global:
"http://applications-rp.radius-system:5443"
types:
mongoDatabases:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
sqlDatabases:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
redisCaches:
apiVersions:
"2023-10-01-preview":
schema: {}
capabilities: ["SupportsRecipes"]
Loading

0 comments on commit 65ecc2f

Please sign in to comment.