Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Postgres Helm chart to rad init #8072

Open
wants to merge 9 commits into
base: main
Choose a base branch
from

Conversation

superbeeny
Copy link
Contributor

@superbeeny superbeeny commented Nov 20, 2024

Description

Adding Postgres installation to the Radius Helm chart

Type of change

  • This pull request adds or changes features of Radius and has an approved issue (issue link required).

Fixes: #8071
Updated issue: #8096

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, 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 is created, if existing samples are affected by the changes in this PR.
  • A PR for the documentation repository is created, if the changes in this PR affect the documentation or any user facing updates are made.
  • A PR for the recipes repository is created, if existing recipes are affected by the changes in this PR.

@radius-functional-tests
Copy link

radius-functional-tests bot commented Nov 20, 2024

Radius functional test overview

🔍 Go to test action run

Name Value
Repository superbeeny/radius
Commit ref f5237c5
Unique ID func43f85f60a7
Image tag pr-func43f85f60a7
Click here to see the list of tools in the current test run
  • gotestsum 1.12.0
  • KinD: v0.20.0
  • Dapr: 1.12.0
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-func43f85f60a7
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-func43f85f60a7
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-func43f85f60a7
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-func43f85f60a7
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-func43f85f60a7
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting ucp-cloud functional tests...
⌛ Starting corerp-cloud functional tests...
✅ ucp-cloud functional tests succeeded
✅ corerp-cloud functional tests succeeded

deploy/Chart/values.yaml Outdated Show resolved Hide resolved
@brooke-hamilton
Copy link
Contributor

@rynowak, @ytimocin please do not approve this PR until we get the feature request through triage. #8071

@superbeeny superbeeny force-pushed the features/superbeeny/postgreschart branch from 9251b92 to 3377dc7 Compare November 21, 2024 21:05
@rynowak
Copy link
Contributor

rynowak commented Nov 21, 2024

Functional test failure looks unrelated. Rerunning. If it fails again, it might be a resource limitation in the cluster.

@rynowak
Copy link
Contributor

rynowak commented Nov 26, 2024

BTW - I think the functional tests are failing due to a resource limitation (low memory) in the runner/cluster. The tests are reserving a huge amount of memory for SQL Server:

https://github.com/radius-project/radius/blob/main/test/testrecipes/test-bicep-recipes/sqldb-recipe.bicep#L56

Unfortunately we don't have logging for events, so we can't find the problem conclusively.

See logs:

SQL Server 2019 will run as non-root by default.
This container is running as user mssql.
To learn more visit https://go.microsoft.com/fwlink/?linkid=2099216.
2024-11-21 22:06:47.75 Server      Setup step is copying system data file 'C:\templatedata\master.mdf' to '/var/opt/mssql/data/master.mdf'.

2024-11-21 22:06:47.77 Server      Did not find an existing master data file /var/opt/mssql/data/master.mdf, copying the missing default master and other system database files. If you have moved the database location, but not moved the database files, startup may fail. To repair: shutdown SQL Server, move the master database to configured location, and restart.

2024-11-21 22:06:47.78 Server      Setup step is copying system data file 'C:\templatedata\mastlog.ldf' to '/var/opt/mssql/data/mastlog.ldf'.

2024-11-21 22:06:47.78 Server      Setup step is copying system data file 'C:\templatedata\model.mdf' to '/var/opt/mssql/data/model.mdf'.

2024-11-21 22:06:47.79 Server      Setup step is copying system data file 'C:\templatedata\modellog.ldf' to '/var/opt/mssql/data/modellog.ldf'.

2024-11-21 22:06:47.80 Server      Setup step is copying system data file 'C:\templatedata\msdbdata.mdf' to '/var/opt/mssql/data/msdbdata.mdf'.

2024-11-21 22:06:47.82 Server      Setup step is copying system data file 'C:\templatedata\msdblog.ldf' to '/var/opt/mssql/data/msdblog.ldf'.

2024-11-21 22:06:47.82 Server      Setup step is FORCE copying system data file 'C:\templatedata\model_replicatedmaster.mdf' to '/var/opt/mssql/data/model_replicatedmaster.mdf'.

2024-11-21 22:06:47.82 Server      Setup step is FORCE copying system data file 'C:\templatedata\model_replicatedmaster.ldf' to '/var/opt/mssql/data/model_replicatedmaster.ldf'.

2024-11-21 22:06:47.83 Server      Setup step is FORCE copying system data file 'C:\templatedata\model_msdbdata.mdf' to '/var/opt/mssql/data/model_msdbdata.mdf'.

2024-11-21 22:06:47.84 Server      Setup step is FORCE copying system data file 'C:\templatedata\model_msdblog.ldf' to '/var/opt/mssql/data/model_msdblog.ldf'.

2024-11-21 22:06:47.87 Server      Microsoft SQL Server 2019 (RTM-CU29-GDR) (KB5046860) - 15.0.4410.1 (X64) 

	Oct 23 2024 15:50:49 

	Copyright (C) 2019 Microsoft Corporation

	Developer Edition (64-bit) on Linux (Ubuntu 20.04.6 LTS) <X64>

2024-11-21 22:06:47.87 Server      UTC adjustment: 0:00

2024-11-21 22:06:47.87 Server      (c) Microsoft Corporation.

2024-11-21 22:06:47.87 Server      All rights reserved.

2024-11-21 22:06:47.87 Server      Server process ID is 388.

2024-11-21 22:06:47.87 Server      Logging SQL Server messages in file '/var/opt/mssql/log/errorlog'.

2024-11-21 22:06:47.88 Server      Registry startup parameters: 

	 -d /var/opt/mssql/data/master.mdf

	 -l /var/opt/mssql/data/mastlog.ldf

	 -e /var/opt/mssql/log/errorlog

2024-11-21 22:06:47.88 Server      SQL Server detected 1 sockets with 2 cores per socket and 4 logical processors per socket, 4 total logical processors; using 4 logical processors based on SQL Server licensing. This is an informational message; no user action is required.

2024-11-21 22:06:47.88 Server      SQL Server is starting at normal priority base (=7). This is an informational message only. No user action is required.

2024-11-21 22:06:47.88 Server      Detected 12785 MB of RAM. This is an informational message; no user action is required.

2024-11-21 22:06:47.88 Server      Using conventional memory in the memory manager.

2024-11-21 22:06:47.90 Server      Page exclusion bitmap is enabled.

2024-11-21 22:06:47.92 Server      Buffer pool extension is not supported on Linux platform.

2024-11-21 22:06:47.93 Server      Buffer Pool: Allocating 2097152 bytes for 1995515 hashPages.

2024-11-21 22:06:48.01 Server      Buffer pool extension is already disabled. No action is necessary.

2024-11-21 22:06:48.16 Server      Successfully initialized the TLS configuration. Allowed TLS protocol versions are ['1.0 1.1 1.2']. Allowed TLS ciphers are ['ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-GCM-SHA256:!DHE-RSA-AES256-SHA:!DHE-RSA-AES128-SHA'].

2024-11-21 22:06:48.18 Server      Query Store settings initialized with enabled = 1, 

2024-11-21 22:06:48.19 Server      Node configuration: node 0: CPU mask: 0x000000000000000f:0 Active CPU mask: 0x000000000000000f:0. This message provides a description of the NUMA configuration for this computer. This is an informational message only. No user action is required.

2024-11-21 22:06:48.19 Server      The maximum number of dedicated administrator connections for this instance is '1'

2024-11-21 22:06:48.20 Server      Using dynamic lock allocation.  Initial allocation of 2500 Lock blocks and 5000 Lock Owner blocks per node.  This is an informational message only.  No user action is required.

2024-11-21 22:06:48.21 Server      In-Memory OLTP initialized on lowend machine.

2024-11-21 22:06:48.23 Server      [INFO] Created Extended Events session 'hkenginexesession'

2024-11-21 22:06:48.23 Server      Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.

ForceFlush is enabled for this instance. 

2024-11-21 22:06:48.24 Server      Total Log Writer threads: 2. This is an informational message; no user action is required.

2024-11-21 22:06:48.24 Server      clwb is selected for pmem flush operation.

2024-11-21 22:06:48.25 Server      Software Usage Metrics is disabled.

2024-11-21 22:06:48.26 spid9s      [1]. Feature Status: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.

2024-11-21 22:06:48.26 spid9s      Starting up database 'master'.

ForceFlush feature is enabled for log durability.

2024-11-21 22:06:48.34 Server      CLR version v4.0.30319 loaded.

2024-11-21 22:06:48.34 spid9s      Converting database 'master' from version 897 to the current version 904.

2024-11-21 22:06:48.34 spid9s      Database 'master' running the upgrade step from version 897 to version 898.

2024-11-21 22:06:48.35 spid9s      Database 'master' running the upgrade step from version 898 to version 899.

2024-11-21 22:06:48.38 spid9s      Database 'master' running the upgrade step from version 899 to version 900.

2024-11-21 22:06:48.38 spid9s      Database 'master' running the upgrade step from version 900 to version 901.

2024-11-21 22:06:48.39 spid9s      Database 'master' running the upgrade step from version 901 to version 902.

2024-11-21 22:06:48.40 spid9s      Database 'master' running the upgrade step from version 902 to version 903.

2024-11-21 22:06:48.40 spid9s      Database 'master' running the upgrade step from version 903 to version 904.

2024-11-21 22:06:48.59 spid9s      Resource governor reconfiguration succeeded.

2024-11-21 22:06:48.60 spid9s      SQL Server Audit is starting the audits. This is an informational message. No user action is required.

2024-11-21 22:06:48.60 spid9s      SQL Server Audit has started the audits. This is an informational message. No user action is required.

2024-11-21 22:06:48.67 spid9s      SQL Trace ID 1 was started by login "sa".

2024-11-21 22:06:48.68 spid9s      Server name is 'sql-ctnr-bd5484bfc-84dtt'. This is an informational message only. No user action is required.

2024-11-21 22:06:48.68 spid23s     Password policy update was successful.

2024-11-21 22:06:48.68 Server      Common language runtime (CLR) functionality initialized.

2024-11-21 22:06:48.70 spid12s     [32767]. Feature Status: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.

2024-11-21 22:06:48.70 spid9s      [4]. Feature Status: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.

2024-11-21 22:06:48.71 spid12s     Starting up database 'mssqlsystemresource'.

2024-11-21 22:06:48.72 spid9s      Starting up database 'msdb'.

2024-11-21 22:06:48.72 spid12s     The resource database build version is 15.00.4410. This is an informational message only. No user action is required.

2024-11-21 22:06:48.76 spid12s     [3]. Feature Status: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.

2024-11-21 22:06:48.76 spid12s     Starting up database 'model'.

2024-11-21 22:06:48.77 spid23s     A self-generated certificate was successfully loaded for encryption.

2024-11-21 22:06:48.78 spid23s     Server is listening on [ 'any' <ipv6> 1433].

2024-11-21 22:06:48.79 spid23s     Server is listening on [ 'any' <ipv4> 1433].

2024-11-21 22:06:48.80 Server      Server is listening on [ ::1 <ipv6> 1434].

2024-11-21 22:06:48.80 Server      Server is listening on [ 127.0.0.1 <ipv4> 1434].

2024-11-21 22:06:48.80 Server      Dedicated admin connection support was established for listening locally on port 1434.

2024-11-21 22:06:48.80 spid23s     Server is listening on [ ::1 <ipv6> 1431].

2024-11-21 22:06:48.81 spid23s     Server is listening on [ 127.0.0.1 <ipv4> 1431].

2024-11-21 22:06:48.81 spid23s     SQL Server is now ready for client connections. This is an informational message; no user action is required.

2024-11-21 22:06:48.82 spid9s      Converting database 'msdb' from version 897 to the current version 904.

2024-11-21 22:06:48.82 spid9s      Database 'msdb' running the upgrade step from version 897 to version 898.

2024-11-21 22:06:48.83 spid9s      Database 'msdb' running the upgrade step from version 898 to version 899.

2024-11-21 22:06:48.84 spid12s     Converting database 'model' from version 897 to the current version 904.

2024-11-21 22:06:48.84 spid12s     Database 'model' running the upgrade step from version 897 to version 898.

2024-11-21 22:06:48.85 spid12s     Database 'model' running the upgrade step from version 898 to version 899.

2024-11-21 22:06:48.85 spid9s      Database 'msdb' running the upgrade step from version 899 to version 900.

2024-11-21 22:06:48.86 spid9s      Database 'msdb' running the upgrade step from version 900 to version 901.

2024-11-21 22:06:48.86 spid12s     Database 'model' running the upgrade step from version 899 to version 900.

2024-11-21 22:06:48.87 spid9s      Database 'msdb' running the upgrade step from version 901 to version 902.

2024-11-21 22:06:48.87 spid12s     Database 'model' running the upgrade step from version 900 to version 901.

2024-11-21 22:06:48.88 spid12s     Database 'model' running the upgrade step from version 901 to version 902.

2024-11-21 22:06:48.88 spid12s     Database 'model' running the upgrade step from version 902 to version 903.

2024-11-21 22:06:48.89 spid12s     Database 'model' running the upgrade step from version 903 to version 904.

2024-11-21 22:06:48.94 spid12s     Clearing tempdb database.

2024-11-21 22:06:49.02 spid12s     [2]. Feature Status: PVS: 0. CTR: 0. ConcurrentPFSUpdate: 1.

2024-11-21 22:06:49.02 spid12s     Starting up database 'tempdb'.

2024-11-21 22:06:49.15 spid12s     The tempdb database has 1 data file(s).

2024-11-21 22:06:49.16 spid27s     The Service Broker endpoint is in disabled or stopped state.

2024-11-21 22:06:49.16 spid27s     The Database Mirroring endpoint is in disabled or stopped state.

2024-11-21 22:06:49.18 spid27s     Service Broker manager has started.

2024-11-21 22:06:49.19 spid9s      Database 'msdb' running the upgrade step from version 902 to version 903.

2024-11-21 22:06:49.19 spid9s      Database 'msdb' running the upgrade step from version 903 to version 904.

2024-11-21 22:06:49.31 spid9s      Recovery is complete. This is an informational message only. No user action is required.

2024-11-21 22:06:49.32 spid26s     The default language (LCID 0) has been set for engine and full-text services.

2024-11-21 22:06:49.42 spid26s     The tempdb database has 4 data file(s).

2024-11-21 22:07:24.55 spid9s      SQL Server is terminating in response to a 'stop' request from Service Control Manager. This is an informational message only. No user action is required.

2024-11-21 22:07:24.99 spid27s     Service Broker manager has shut down.

2024-11-21 22:07:24.99 spid9s      .NET Framework runtime has been stopped.

2024-11-21 22:07:25.01 spid9s      SQL Trace was stopped due to server shutdown. Trace ID = '1'. This is an informational message only; no user action is required.

@superbeeny superbeeny force-pushed the features/superbeeny/postgreschart branch from 3377dc7 to 33a5958 Compare December 2, 2024 20:29
database:
image: ghcr.io/radius-project/mirror/postgres
tag: latest
storageClassName: "standard" # set to the storage class name if required
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would this need to change depending on where the Kubernetes cluster is hosted?

Comment on lines +120 to +127
storageSize: "1Gi"
resources:
requests:
cpu: "2"
memory: "512Mi"
limits:
cpu: "2"
memory: "1024Mi"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious how did we decide these values. Would helpful if you could add a comment in the code for context as well.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add a comment here

@@ -100,5 +100,21 @@ resource sqlContainer 'Applications.Core/containers@2023-10-01-preview' = {
}
}
}
runtimes: {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are we adding this to resolve the sqlserver functional test issues?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was an attempt to try and limit the size of the sqlserver, I'll revert in a subsequent commit

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a pretty large amount of resources still (2 GB). Did this help?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rynowak per our offline discussion, do we want to go ahead and delete this test? If so, @superbeeny can do this as part of this PR which will also unblock it.

For context, @superbeeny, we added a functional test for every portable resource type initially because we had custom implementation for each of them. Since then the implementation has evolved and majority of the code has converged across all types, so it is covered extensively through other functional tests. SQL server specifically is also covered in Radius eshop sample.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 to the consensus that this is ok to remove. It think that would mean deleting https://github.com/radius-project/radius/blob/main/test/functional-portable/datastoresrp/noncloud/resources/sql_test.go and the other files it references.

There's actually more than one sql server test which is why I think we're hitting issues. That's 4gb minimum used by those tests.

Copy link
Contributor

@kachawla kachawla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for driving this.

Couple of overall nits on pr/tracking logistics -

  • Could you please update the PR title with a summary of the change?
  • Could you add a checklist in External data store for Radius #8096 to include follow up tasks needed after this change. For example, documentation updates, analyzing dashboard for delta in resource consumption and documenting it if necessary.

@superbeeny superbeeny changed the title Features/superbeeny/postgreschart Adding Postgres Helm chart to rad init Dec 12, 2024
@superbeeny superbeeny force-pushed the features/superbeeny/postgreschart branch from 33a5958 to 4117496 Compare January 8, 2025 16:55
Copy link

codecov bot commented Jan 8, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 59.95%. Comparing base (8eb7f7b) to head (a9f7298).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8072      +/-   ##
==========================================
- Coverage   59.96%   59.95%   -0.01%     
==========================================
  Files         589      589              
  Lines       39237    39237              
==========================================
- Hits        23528    23525       -3     
- Misses      13975    13977       +2     
- Partials     1734     1735       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@superbeeny superbeeny deployed to functional-tests January 8, 2025 17:57 — with GitHub Actions Active
@radius-functional-tests
Copy link

radius-functional-tests bot commented Jan 8, 2025

Radius functional test overview

🔍 Go to test action run

Name Value
Repository superbeeny/radius
Commit ref a9f7298
Unique ID func047a1b26a0
Image tag pr-func047a1b26a0
Click here to see the list of tools in the current test run
  • gotestsum 1.12.0
  • KinD: v0.20.0
  • Dapr:
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-func047a1b26a0
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-func047a1b26a0
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-func047a1b26a0
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-func047a1b26a0
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-func047a1b26a0
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting corerp-cloud functional tests...
⌛ Starting ucp-cloud functional tests...
✅ ucp-cloud functional tests succeeded
❌ corerp-cloud functional test failed. Please check the logs for more details

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Adding Postgres install to the radius helm chart
5 participants