diff --git a/Gemfile.lock b/Gemfile.lock
index 5e91eb6c..c188b194 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: core
specs:
- uffizzi_core (2.3.0)
+ uffizzi_core (2.3.1)
aasm
actionpack (~> 6.1.0)
active_model_serializers
@@ -110,23 +110,23 @@ GEM
activerecord (>= 5.2.6)
ast (2.4.2)
awesome_print (1.9.2)
- aws-eventstream (1.2.0)
- aws-partitions (1.843.0)
- aws-sdk-core (3.185.1)
+ aws-eventstream (1.3.0)
+ aws-partitions (1.859.0)
+ aws-sdk-core (3.188.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-ecr (1.65.0)
- aws-sdk-core (~> 3, >= 3.184.0)
+ aws-sdk-ecr (1.67.0)
+ aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sdk-eventbridge (1.51.0)
- aws-sdk-core (~> 3, >= 3.184.0)
+ aws-sdk-eventbridge (1.53.0)
+ aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sdk-iam (1.89.0)
- aws-sdk-core (~> 3, >= 3.184.0)
+ aws-sdk-iam (1.91.0)
+ aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sigv4 (1.6.1)
+ aws-sigv4 (1.7.0)
aws-eventstream (~> 1, >= 1.0.2)
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
@@ -260,7 +260,7 @@ GEM
nokogiri (1.13.3)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
- octokit (7.2.0)
+ octokit (8.0.0)
faraday (>= 1, < 3)
sawyer (~> 0.9)
parallel (1.21.0)
@@ -268,7 +268,7 @@ GEM
ast (~> 2.4.1)
parslet (2.0.0)
pg (1.3.4)
- public_suffix (5.0.3)
+ public_suffix (5.0.4)
puma (4.3.11)
nio4r (~> 2.0)
pundit (2.3.1)
@@ -318,9 +318,9 @@ GEM
railties (>= 5.2)
rexml (3.2.5)
rolify (6.0.1)
- rswag-api (2.11.0)
+ rswag-api (2.12.0)
railties (>= 3.1, < 7.2)
- rswag-ui (2.11.0)
+ rswag-ui (2.12.0)
actionpack (>= 3.1, < 7.2)
railties (>= 3.1, < 7.2)
rubocop (1.26.0)
@@ -347,7 +347,7 @@ GEM
connection_pool (>= 2.2.2)
rack (~> 2.0)
redis (>= 4.2.0)
- sidekiq-unique-jobs (7.1.30)
+ sidekiq-unique-jobs (7.1.31)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (< 5.0)
diff --git a/README.md b/README.md
index e274ad67..c23ae7eb 100644
--- a/README.md
+++ b/README.md
@@ -15,15 +15,15 @@
Website •
Slack •
- Blog •
+ Blog •
Twitter •
Documentation
-Uffizzi helps teams ship features faster by solving their shared test environment bottleneck. It gives every member of your team the ability to spin up fresh QA, staging, demo, or debugging environments on demand, without impacting the rest of your team. Use Uffizzi environments to preview pull requests before merging or integrate with your CI pipeline for automated, end-to-end testing against a preview URL. Teams like [Backstage](), [NocoDB](), [Meilisearch](), and [Forem]() have adopted Uffizzi because it's lightweight, fast, scalable, and more cost effective than competing solutions.
+Uffizzi helps teams build [internal developer platforms (IDPs)](/core-concepts/internal-developer-platform) in minutes, not months, by providing out-of-the-box [Kubernetes multi-tenancy](https://www.uffizzi.com/kubernetes-multi-tenancy), [virtual clusters](/core-concepts/ephemeral-environments/virtual-clusters), cloud-based [dev environments](/core-concepts/ephemeral-environments/dev-clusters), customizable templating, and more.
-Did you know that Spotify's Backstage team achieves rapid releases at scale using nearly 400 ephemeral environments per month? [Learn how →](https://www.uffizzi.com/ephemeral-environments)
+Uffizzi provides a foundation for building IDPs, so platform teams can build end-to-end workflows, giving every developer access to self-service, [ephemeral environments](/core-concepts/ephemeral-environments) for development, testing, PRs, staging and more. Use Uffizzi environments to preview pull requests before merging or integrate with your CI pipeline for automated, end-to-end testing.
@@ -37,7 +37,6 @@ Did you know that Spotify's Backstage team achieves rapid releases at scale usin
Backstage •
NocoDB •
- Meilisearch •
Forem •
Lazygit •
D2IQ •
@@ -55,17 +54,21 @@ Did you know that Spotify's Backstage team achieves rapid releases at scale usin
OnlineGo •
BoxyHQ
+
+
+Teams like [Backstage](https://github.com/backstage/backstage/tree/master/.github/uffizzi), [NocoDB](https://github.com/nocodb/nocodb/tree/develop/.github/uffizzi), and [Forem](https://github.com/forem/forem/blob/main/.github/workflows/uffizzi-preview.yml) have adopted Uffizzi because it's lightweight, fast, scalable, and more cost effective than competing solutions. Did you know that Spotify's Backstage team achieves rapid releases at scale using nearly 400 ephemeral environments per month? [Learn how →](https://www.uffizzi.com/ephemeral-environments)
+
![github-banner](https://user-images.githubusercontent.com/7218230/191119628-4d39c65d-465f-4011-9370-d53d7b54d8cc.png)
-## Quickstart (~1 minute)
+## Quickstart (~2 minute)
-Go to the [`quickstart` repo](https://github.com/UffizziCloud/quickstart#uffizzi-quickstart--1-minute), then follow the instructions in the `README` to create a preview environment for a sample application.
+Go to the [Quickstart Guide](https://docs.uffizzi.com/quickstart) to get started creating ephemeral environments.
## How it works
-Create on-demand preview environments for APIs, frontends, backends, databases, microservices, binaries and command-line tools. Each ephemeral environment gets a secure HTTPS URL that is continually refreshed when you push new commits. Uffizzi also handles clean up, so your environments last only as long as you need them.
+Spin up ephemeral environments on demand from the CLI, web dashboard, or from a CI pipeline. Each ephemeral environment is continually refreshed when you push new commits. Uffizzi also handles clean up, so your environments last only as long as you need them.
Uffizzi's modular design works with GitHub, GitLab, BitBucket, and any CI provider.
@@ -78,6 +81,8 @@ If you're interested in Uffizzi, give us a star. It helps others discover the pr
Uffizzi is designed to integrate with any CI platform as a step in your pipeline. You can use Uffizzi to rapidly create:
+- Cloud dev environments with hot reloading of deployed services
+- On-demand test environments for Kubernetes applications
- Pull request environments
- Debugging environments
- Hotfix environments
@@ -87,95 +92,78 @@ Uffizzi is designed to integrate with any CI platform as a step in your pipeline
## What types of apps are supported by Uffizzi?
-Uffizzi is designed for full-stack web applications and containerized services, including APIs, backends, frontends, databases, microservices, binaries and command line tools. Application configurations are defined via Docker Compose, with support for Helm charts on our [roadmap](https://github.com/orgs/UffizziCloud/projects/2/views/1?layout=board&pane=issue&itemId=6460813). See [Docker Compose for Uffizzi ](https://docs.uffizzi.com/references/compose-spec/) to learn more about supported syntax.
+Uffizzi supports application configurations in Kubernetes manifests, Helm, kustomize, or Docker Compose. See [Using Uffizzi](https://docs.uffizzi.com/usage) to learn about the ways you can use Uffizzi.
## Why Uffizzi?
-Uffizzi helps busy project leaders approve pull requests faster. Testing a live preview provides a more holistic way to assess a new feature or bug fix, rather than simply reviewing code changes. Uffizzi also removes the added step of pulling down the branch to test it locally: Uffizzi seamlessly integrates with CI providers like GitHub Actions and posts comments directly to pull request issues, so there is no additional step for the maintainer or the contributor.
-
-## Project roadmap
+Uffizzi provides a foundation for building IDPs, so platform teams can build end-to-end workflows, giving every developer access to self-service, ephemeral environments for development, testing, PRs, staging and more.
-See our high-level [project roadmap](https://github.com/orgs/UffizziCloud/projects/2/views/1?layout=board), including already delivered milestones.
+Uffizzi is also useful for helping busy open source project leaders approve pull requests faster. Testing a live preview provides a more holistic way to assess a new feature or bug fix, rather than simply reviewing code changes. Uffizzi also removes the added step of pulling down the branch to test it locally: Uffizzi seamlessly integrates with CI providers like GitHub Actions and posts comments directly to pull request issues, so there is no additional step for the maintainer or the contributor. Learn how Uffizzi is helping [Backstage accelerate their development velocity by 20%](https://www.uffizzi.com/ephemeral-environments).
## Set up ephemeral environments for your application
-(If you haven't completed the [quickstart guide](https://github.com/UffizziCloud/quickstart), we recommend starting there to understand how Uffizzi works and how it's configured.)
+(If you haven't completed the [quickstart guide](https://docs.uffizzi.com/quickstart), we recommend starting there to understand how Uffizzi works and how it's configured.)
-There are two options to get Uffizzi:
+There are three options to get Uffizzi:
-1. **Use [Uffizzi Cloud](https://uffizzi.com) (SaaS)** - This is fastest and easiest way to get started and includes two free concurrent Preview Environments for your team. It also includes some premium options like single sign-on (SSO) and password-protected preview URLs. If you want to use Uffizzi Cloud, you can follow this [step-by-step guide](https://docs.uffizzi.com/set-up-uffizzi-for-your-application) to configure Preview Environments for your own application.
-
-2. **Install open-source Uffizzi on your own Kubernetes cluster** - Alternatively, you can install Uffizzi on your own cluster by following the [self-hosted installation guide](INSTALL.md).
+1. **[Uffizzi Cloud](https://docs.uffizzi.com/cloud) (SaaS)** - This is fastest and easiest way to get started. Uffizzi Cloud is our fully managed option, so you don't have to worry about managing any infrastructure. You can get two concurrent environments for free, or unlock unlimited ephemeral environments with Uffizzi Pro. See our [Pricing page](https://www.uffizzi.com/pricing) for details.
+2. **[Uffizzi Enterprise](https://docs.uffizzi.com/enterprise)** - Uffizzi Enterprise provides the option to run workloads on your own infrastucture, along with more flexibility in customizing your ephemeral environments experience.
+3. **[Uffizzi Open Source](https://docs.uffizzi.com/open-source)** - Alternatively, you can install the open source version of Uffizzi on your own cluster by following the [self-hosted installation guide](INSTALL.md).
## Documentation
- [Main documentation](https://docs.uffizzi.com)
-- [Docker Compose for Uffizzi ](https://docs.uffizzi.com/references/compose-spec/)
-- [Quickstart guide](https://github.com/UffizziCloud/quickstart)
+- [Docker Compose for Uffizzi ](https://docs.uffizzi.com/compose)
+- [Quickstart guide](https://docs.uffizzi.com/quickstart)
## Community
- [Slack channel](https://join.slack.com/t/uffizzi/shared_invite/zt-ffr4o3x0-J~0yVT6qgFV~wmGm19Ux9A) - Get support or discuss the project
-- [Subscribe to our newsletter](http://eepurl.com/hsws0b) - Receive monthly updates about new features and special events
+- [Subscribe to our newsletter](https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7011448505391042560) - Receive monthly updates about new features and special events
- [Contributing to Uffizzi](CONTRIBUTING.md) - Start here if you want to contribute
- [Code of Conduct](CODE_OF_CONDUCT.md) - Let's keep it professional
## FAQs
-My team tests locally. Why do I need Preview Environments?
+My team tests locally. Why do I need Ephemeral Environments?
- - Preview Environments more closely resemble production. Uffizzi deploys images built from your CI pipeline—similar to the ones deployed to a production environment. Uffizzi Preview Environments also include a full network stack, including a domain and TLS certificate.
- - Preview Environments provide a quality gate to help keep dirty code out of your main branch. Teams can test new features or bug fixes in clean, isolated environments.
+ - Ephemeral Environments more closely resemble production. Uffizzi deploys images built from your CI pipeline—similar to the ones deployed to a production environment. Uffizzi Ephemeral Environments also include a full network stack, including a domain and TLS certificate.
+ - Ephemeral Environments provide many benefits including standardizing development configurations, avoiding the bottleneck of a single test/staging environment, acting as a quality gate to help keep dirty code out of your main branch. Teams can develop and test new features or bug fixes in clean, isolated environments.
- Public preview URLs allow every stakeholder on a team to review features and bug fixes. This helps shorten the feedback loop between developer and reviewer/tester, resulting in faster releases.
How is Uffizzi different from Codespaces, Gitpod, etc.?
-Codespaces, Gitpod, and similar tools provide development environments hosted in the cloud. They let you open code editors like VS Code in your browser and make it easy to standardize development environments for your whole team. They can also provide developers access to more powerful machines than typically available on a laptop or desktop.
+Codespaces, Gitpod, and similar tools focus soley on providing development environments hosted in the cloud. They let you code locally (or in a browser-emulated editor) and see your changes in a live deployed environments. They can also provide developers access to more powerful machines than typically available on a laptop or desktop.
+
+Uffizzi is a more full-featured platform designed for building self-serve developer platforms and for standardizing end-to-end developer workflows through on-demand dev, test, CI, and staging environments. Similar to Codespaces and Gitpod, Uffizzi offers cloud-based dev environments, but unlike these tools, Uffizzi users have access to the underlying Kubernetes clusters, enabling more complex configurations and customization via kubectl and similar tools. Uffizzi also supports creating virtual clusters for ephemeral test environments, as well as, CI integrations for pull request previews.
-Uffizzi, by contrast, is downstream of these tools—i.e., Uffizzi Preview Environments are intended to be used once your code is ready for review. When added to your CI pipeline, Uffizzi will create a Preview Environment after a pull request is opened. Uffizzi works with whatever development method you choose—whether local or with cloud-based development environments like Gitpod or Codespaces.
+See our documentation for other common uses and guides.
-Uffizzi is most useful for peer review, team leaders, QA, or anyone testing branches before they're merged with a shared branch such as main or master.
How is Uffizzi different from GitHub Actions (or other CI providers)?
-Uffizzi does not replace GitHub Actions or any other CI provider. Uffizzi previews are meant to be added as a step in your existing CI pipeline, after your container images are built and pushed to a container registry.
+Uffizzi does not replace GitHub Actions or any other CI provider. Uffizzi can be added as a step in your existing CI pipeline, after your container images are built and pushed to a container registry. For example, when you open a pull request, a GitHub Actions workflow can trigger the creation of new virtual cluster on Uffizzi and deploy that branch onto it. See our CI Recipes for configuration help.
What about my database?
-All services defined by your Docker Compose file are deployed to Preview Environments as containers—this includes databases, caches, and other datastores. This means that even if you use a managed database service like Amazon RDS for production, you should use a database image in your Compose (See this example that uses a postgres
image from Docker Hub).
-
-If your application requires test data, you will need to seed your database when your Preview Environment is created. Here are two methods for seeding databases:
-
- - Load an SQL dump file upon container initialization.
- - Use a language/framework-specific migration tool such as
db:migrate
for Rails or manage.py loaddata
for Django.
-
-
-Learn more about database seeding in Uffizzi
+All services deployed to Uffizzi ephemeral environments are deployed as containers—this includes databases, caches, and other stateful services This means that even if you use a managed database service like Amazon RDS for production, you should use a database image in your configuration (See our Ephemeral Environments Handbook for strategies on managing stateful services on Uffizzi.
What do you mean by "environments"?
-Uffizzi Preview Environments are deployed upon Kubernetes. Uffizzi performs a translation from Compose to Kubernetes, where your application is deployed as a Pod to an isolated Namespace within a cluster. This abstraction helps reduce a team's infrastructure footprint and associated overhead. Uffizzi also creates a unique hostname for each Preview Environment and provision a TLS certificate. Each Preview Environment exposes one socket that can receive HTTP traffic. Every container defined by your Compose can communicate with each other on an internal network via localhost
. Application instances that belong to different Preview Environments may only communicate via the public Internet. See the self-hosted installation guide for more architecture details.
+See our documentaion for what we mean.
Does Uffizzi support monorepos/polyrepos?
-Yes. Your CI pipeline will typically include a series of build
/push
steps for each of the components of your application. Uffizzi just needs to know the fully qualified container registry URL for where to find these built images.
+Yes. Whether created via you're creating ephemeral environments from the CLI, dashboard, or CI pipeline, Uffizzi can deploy applications from one source or many. If you're using Uffizzi virtual clusters, you should define the sources in your Helm Charts, kustomizations, or manifests. For Docker Compose users, Uffizzi just needs to know the fully qualified container registry URL for where to find these built images. See the Uffizzi Compose reference for details.
Does Uffizzi support _____________?
-Uffizzi is container-centric, so in general, if your application can be containerized, described with Docker Compose, and accepts HTTP traffic, Uffizzi can preview it. Uffizzi supports web applications, microservices, databases, binaries, and command-line tools.
+In general, if your application can be containerized, described with Kubernetes, Helm, kustomize, or Docker Compose, then it is likely compatible with Uffizzi. The one notable exception to this is that Uffizzi does not support Node-level access, such as Kubernetes DaemonSets.
How can my application services communicate?
-Just like when you run docker-compose up
locally, all the services
defined in your Compose share a local network and can communicate via localhost
. Application instances that belong to different Preview Environments may only communicate via the public Internet.
-
-
-Can I connect Uffizzi with Netlify/Vercel?
-Yes. While Uffizzi supports full-stack previews, some users who already leverage frontend platforms like Netlify or Vercel want to add Uffizzi previews for their APIs/backend. For help configuring this scenario see:
-
+See Uffizzi Networking for details.
Is Uffizzi open source?
diff --git a/core/Gemfile.lock b/core/Gemfile.lock
index 94222a79..bb98a14b 100644
--- a/core/Gemfile.lock
+++ b/core/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- uffizzi_core (2.3.0)
+ uffizzi_core (2.3.1)
aasm
actionpack (~> 6.1.0)
active_model_serializers
@@ -109,23 +109,23 @@ GEM
ancestry (4.3.3)
activerecord (>= 5.2.6)
awesome_print (1.9.2)
- aws-eventstream (1.2.0)
- aws-partitions (1.843.0)
- aws-sdk-core (3.185.1)
+ aws-eventstream (1.3.0)
+ aws-partitions (1.859.0)
+ aws-sdk-core (3.188.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-ecr (1.65.0)
- aws-sdk-core (~> 3, >= 3.184.0)
+ aws-sdk-ecr (1.67.0)
+ aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sdk-eventbridge (1.51.0)
- aws-sdk-core (~> 3, >= 3.184.0)
+ aws-sdk-eventbridge (1.53.0)
+ aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sdk-iam (1.89.0)
- aws-sdk-core (~> 3, >= 3.184.0)
+ aws-sdk-iam (1.91.0)
+ aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
- aws-sigv4 (1.6.1)
+ aws-sigv4 (1.7.0)
aws-eventstream (~> 1, >= 1.0.2)
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
@@ -151,7 +151,7 @@ GEM
crack (0.4.5)
rexml
crass (1.0.6)
- date (3.3.3)
+ date (3.3.4)
deep_merge (1.2.2)
deepsort (0.4.5)
descendants_tracker (0.0.4)
@@ -252,7 +252,7 @@ GEM
activerecord
kaminari-core (= 1.2.2)
kaminari-core (1.2.2)
- loofah (2.21.4)
+ loofah (2.22.0)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
mail (2.8.1)
@@ -271,21 +271,21 @@ GEM
power_assert (>= 1.1)
mocha (1.13.0)
multipart-post (2.3.0)
- net-imap (0.4.2)
+ net-imap (0.4.6)
date
net-protocol
net-pop (0.1.2)
net-protocol
- net-protocol (0.2.1)
+ net-protocol (0.2.2)
timeout
net-smtp (0.4.0)
net-protocol
nio4r (2.5.8)
- nokogiri (1.15.4-aarch64-linux)
+ nokogiri (1.15.5-aarch64-linux)
racc (~> 1.4)
- nokogiri (1.15.4-x86_64-linux)
+ nokogiri (1.15.5-x86_64-linux)
racc (~> 1.4)
- octokit (7.2.0)
+ octokit (8.0.0)
faraday (>= 1, < 3)
sawyer (~> 0.9)
parslet (2.0.0)
@@ -305,7 +305,7 @@ GEM
nio4r (~> 2.0)
pundit (2.3.1)
activesupport (>= 3.0.0)
- racc (1.7.1)
+ racc (1.7.3)
rack (2.2.3)
rack-cors (1.1.1)
rack (>= 2.0.0)
@@ -350,9 +350,9 @@ GEM
railties (>= 5.2)
rexml (3.2.5)
rolify (6.0.1)
- rswag-api (2.11.0)
+ rswag-api (2.12.0)
railties (>= 3.1, < 7.2)
- rswag-ui (2.11.0)
+ rswag-ui (2.12.0)
actionpack (>= 3.1, < 7.2)
railties (>= 3.1, < 7.2)
ruby2_keywords (0.0.5)
@@ -363,7 +363,7 @@ GEM
connection_pool (>= 2.2.5, < 3)
rack (~> 2.0)
redis (>= 4.5.0, < 5)
- sidekiq-unique-jobs (7.1.30)
+ sidekiq-unique-jobs (7.1.31)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (< 5.0)
@@ -381,7 +381,7 @@ GEM
yard
thor (1.3.0)
thread_safe (0.3.6)
- timeout (0.4.0)
+ timeout (0.4.1)
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
unicode (0.4.4.4)
diff --git a/core/app/lib/uffizzi_core/concerns/models/deployment.rb b/core/app/lib/uffizzi_core/concerns/models/deployment.rb
index b64aba9d..f477ece1 100644
--- a/core/app/lib/uffizzi_core/concerns/models/deployment.rb
+++ b/core/app/lib/uffizzi_core/concerns/models/deployment.rb
@@ -9,6 +9,7 @@ module UffizziCore::Concerns::Models::Deployment
include UffizziCore::StateMachineConcern
include UffizziCore::DeploymentRepo
extend Enumerize
+ include UffizziCore::DependencyInjectionConcern
self.table_name = UffizziCore.table_names[:deployments]
@@ -71,7 +72,8 @@ def clean
end
def preview_url
- "#{subdomain}.#{Settings.app.managed_dns_zone}"
+ managed_dns_zone = controller_settings_service.deployment(self).managed_dns_zone
+ "#{subdomain}.#{managed_dns_zone}"
end
def namespace
diff --git a/core/app/services/uffizzi_core/controller_service.rb b/core/app/services/uffizzi_core/controller_service.rb
index ea823581..5ad6b10a 100644
--- a/core/app/services/uffizzi_core/controller_service.rb
+++ b/core/app/services/uffizzi_core/controller_service.rb
@@ -145,7 +145,7 @@ def request_events(deployment)
def controller_client(deployable)
settings = case deployable
when UffizziCore::Deployment
- Settings.controller
+ controller_settings_service.deployment(deployable)
when UffizziCore::Cluster
controller_settings_service.vcluster(deployable)
else
diff --git a/core/app/services/uffizzi_core/controller_settings_service.rb b/core/app/services/uffizzi_core/controller_settings_service.rb
index 6e4401aa..056fa4c9 100644
--- a/core/app/services/uffizzi_core/controller_settings_service.rb
+++ b/core/app/services/uffizzi_core/controller_settings_service.rb
@@ -5,5 +5,11 @@ class << self
def vcluster(_cluster)
Settings.vcluster_controller
end
+
+ def deployment(_cluster)
+ Settings.controller.deep_dup.tap do |s|
+ s.managed_dns_zone = Settings.app.managed_dns_zone
+ end
+ end
end
end
diff --git a/core/lib/uffizzi_core/version.rb b/core/lib/uffizzi_core/version.rb
index 7b6c3037..258e274f 100644
--- a/core/lib/uffizzi_core/version.rb
+++ b/core/lib/uffizzi_core/version.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
module UffizziCore
- VERSION = '2.3.0'
+ VERSION = '2.3.1'
end