- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的集群中,我使用 weave flux连同他们的flux-helm-operator 以gitops 的方式管理我的集群。
但是,当我在flux git存储库中对图表进行更改时,经常会遇到以下错误消息:
ts=2019-09-25T11:54:37.604506452Z caller=chartsync.go:328 component=chartsync
warning="unable to proceed with release"
resource=mychart:helmrelease/mychart release=mychart
err="release requires a rollback before it can be upgraded (FAILED)"
最佳答案
让我们深入了解 helm-operator
的代码
警告 unable to proceed with release
出现在 GetUpgradableRelease
之后
// GetUpgradableRelease returns a release if the current state of it
// allows an upgrade, a descriptive error if it is not allowed, or
// nil if the release does not exist.
release requires a rollback before it can be upgraded
如果版本有
Status_FAILED
状态(见
release.go#89)
UNHEALTHY
状态块释放
flux
开发人员
mentioned in #2265 ,没有办法滚动到
UNHEALTHY
状态。
This is not a bug but I can see where your expectation is coming from.
Flux will only move healthy releases forward, one of the reasons for this is to ensure we do not end up in a loop of failure, the
--force
flag is thus not intended to be used to force the upgrade of an unhealthy resource (you should use the rollback feature for this) but was developed to make it possible to upgrade charts with e.g. backwards incompatible changes (changes on immutable fields for example, which require a resource to be removed first, see #1760).Conclusion: the
forceUpgrade
is honoured, but can not be used to force the upgrade of a release in anUNHEALTHY
state.
rollback
特征
From time to time a release made by the Helm operator may fail, it is possible to automate the rollback of a failed release by setting
.spec.rollback.enable
to true on the HelmRelease resource.Note: a successful rollback of a Helm chart containing a StatefulSet resource is known to be tricky, and one of the main reasons automated rollbacks are not enabled by default for all HelmReleases. Verify a manual rollback of your Helm chart does not cause any problems before enabling it.
When enabled, the Helm operator will detect a faulty upgrade and perform a rollback, it will not attempt a new upgrade unless it detects a change in values and/or the chart.
apiVersion: flux.weave.works/v1beta1
kind: HelmRelease
# metadata: ...
spec:
# Listed values are the defaults.
rollback:
# If set, will perform rollbacks for this release.
enable: false
# If set, will force resource update through delete/recreate if
# needed.
force: false
# Prevent hooks from running during rollback.
disableHooks: false
# Time in seconds to wait for any individual Kubernetes operation.
timeout: 300
# If set, will wait until all Pods, PVCs, Services, and minimum
# number of Pods of a Deployment are in a ready state before
# marking the release as successful. It will wait for as long
# as the set timeout.
wait: false
关于kubernetes - Helm 错误 : release requires a rollback before it can be upgraded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58097994/
这两行的状态设置为 1。我想将它们设置为 0 并可视化 rollback 查询的结果。这个查询完成了这项工作: START TRANSACTION; UPDATE jkm_content SET st
通常当我做 $ rake db:rollback 它回滚一次迁移。但现在,反复多次,它已经回滚了 3 个步骤。 这种行为怎么来的? 我在 Rails 3.2.13 上。 最佳答案 您可以指定这样的步骤
不确定我是否在问正确的问题,但是这里... 我已连接到关闭自动提交的 postgres 实例。我看到的是,如果查询存在语法问题: select * fro table limit 400 ,我必须先回
Cassandra 2.0 documentation包含以下关于原子性的段落: For example, if using a write consistency level of QUORUM w
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我在办公室运行本地主机 XAMPP 服务器用于测试目的。我正在旅行,决定在我的笔记本电脑上完成一些工作,因此我在我的笔记本电脑上安装了新版本的 XAMPP,复制了我的文件,但由于某种原因,我在我的笔记
我在 Grails 3 中使用 Spock 进行测试。一个特定的测试用例被破坏了,因为在这种情况下,Grails 在两个不同的 session 中与我的数据库对话。我的规范用 @Rollback 注释
我是 PostgreSQL/libpq 的新手。所以请帮我澄清我的困惑: 假设我首先执行“START TRANSACTION”并进行适当的错误检查 (PQresultStatus(res) != [p
问题 在遇到数据库完整性错误(SQLAlchemy 的要求)后调用 SQLAlchemy 的 session.rollback() 会导致所有 session 对象被释放。这包括之前选择创建的对象。
与使用 EF Core 管理交易相关的问题: IDbContextTransaction.Rollback() 是否有机会返回异常,以便将其放在 try block 中是否有意义? 即 try
在下面的代码中,当我在表中插入数据时,回滚的目的是什么,如果我想回滚,我不应该插入它,那么使用回滚的合适方法是什么? BEGIN TRANSACTION Insert into dimCustomr
我在 START TRANSACTION 和 COMMIT 之间执行了多个查询 SQL 语句。 如果出现任何问题,进程将在中间终止而不执行 COMMIT 并且数据库不会发生任何事情。到目前为止,没有执
我们可以在 Oracle 中创建保存点,然后我们可以通过调用 ROLLBACK TO SAVEPOINT 回滚到特定的保存点。 . UPDATE employees SET salary =
ROLLBACK TRAN 会回滚我的 SP 中的所有内容吗? (包括对另一个SP的调用) 示例: BEGIN TRAN INSERT INTO (table1) VALUES (1,'abc
我一直在尝试使用我们现有的 Spring JUnit 测试(通过 @TransactionalTestExecutionListener 运行或子类化 AbstractTransactionalUni
在我的托管 Bootstrap 的 bundle.wxs 中,我链接了多个包: 我正在订阅 ExecutePackageBegin/ExecutePackageComplete
此代码使用存储在 $in 中的所有查询进行交易。例如$in = "查询1;查询2;查询3;" 当其中一个失败时,它被回滚但没有效果,没有错误的查询被插入到数据库中 $conn = mysql_
我有以下代码在事务中执行数据库操作: try { //start transaction repository.startTrans
有一天,我注意到我的事务不接受 ActiveRecord::Rollback。我有一个这样的例子: 示例 ActiveRecord::Base.transaction do puts @shi
连接没问题,但是查询语句好像有问题。 query1 = """SELECT * FROM `DATABASE` WHERE `coin` = 'LTC'""" query2 = """SELECT *
我是一名优秀的程序员,十分优秀!