根据我阅读的文档,有 3 种修补方法:
patchesStrategicMerge
和之间的区别patchesJson6902
很明显。patchesStrategicMerge
需要 kubernetes 资源的重复结构来标识正在修补的基本资源,然后是规范的修改部分以指示更改(或删除)的内容。
patchesJson6902
定义了一个 'target' 属性,用于指定 kubernetes 资源和一个 'path' 属性,该属性指定资源中的哪个属性被修改、添加或删除。
但是,什么是我不明白之间的差别patches
和patchesJson6902
。它们在性质上似乎非常相似。两者都指定了一个“目标”属性和描述被修改内容的操作对象。
我注意到的唯一区别是patches
不需要“组”属性,而需要patchesJson6902
;原因不明。
那么为什么两者之间存在差异呢?我如何确定使用哪一个?
AWS 的新建议是默认禁用 ACL,以便对象所有权默认为存储桶所有者。如何使用 Terraform 通过 aws_s3_bucket 资源实现此目的?
我尝试执行以下操作但没有成功
resource "aws_s3_bucket_acl" "example_bucket_acl" {
bucket = aws_s3_bucket.s3-bucket.id
acl = "private"
expected_bucket_owner = data.aws_caller_identity.current.account_id
}
data "aws_caller_identity" "current" {}
Run Code Online (Sandbox Code Playgroud)
此代码设置 ACL,以便只有存储桶所有者才能读取和写入存储桶以及存储桶中的对象,但对象所有权配置仍设置为“对象写入者”。此外,ACL 不会因设置而被禁用。
从Terraform 关于 S3 ACL 的文档来看,它没有说明任何示例,也没有提供任何支持禁用 ACL 的参数。
在手动更改 AWS 中的设置后,我尝试通过运行 terraform plan 来暴力破解该解决方案,看看我会从该计划中得到什么差异,但它说我的基础设施与配置匹配。
有谁知道如何做到这一点?我目前正在使用 Terraform CLI v1.3.5 和 AWS 提供商 v4.40.0。
amazon-s3 amazon-web-services terraform terraform-provider-aws
因此,我完成了生成 RSA 密钥、为 CSR 创建 YAML、使用 kubectl 在 Minikube 中创建 CSR、批准证书的过程。
但是,当我尝试使用下载证书时,kubectl get csr my-csr -o jsonpath='{.status.certificate}'
我得到的结果为空。
当我kubectl get csr my-csr -o yaml
获取更多信息时,我看到的是:
status:
conditions:
- lastUpdateTime: "2020-01-17T20:17:20Z"
message: This CSR was approved by kubectl certificate approve.
reason: KubectlApprove
type: Approved
Run Code Online (Sandbox Code Playgroud)
我期待一个带有 base64 编码字符串的证书属性,我将对其进行解码以获取用于客户端证书验证的证书。有人可以告诉我我做错了什么吗?
有关更多上下文,我尝试按照本教程中的说明进行操作
我正在使用 Terragrunt 和 Terraform 版本 0.14.8。
\n我的项目使用 mono 存储库结构,因为项目要求将 Terragrunt 文件和 Terraform 模块打包在一个包中。
\n文件夹结构:
\nproject root:\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 environments\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 prd\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rds-cluster\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 terragrunt.hcl\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 terragrunt.hcl\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 modules\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 rds-cluster\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 output.tf\n \xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 variables.tf\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 secretsmanager-secret\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 output.tf\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 variables.tf\n
Run Code Online (Sandbox Code Playgroud)\n在 prd/terragrunt.hcl 中,我定义了远程状态块和生成提供程序块。
\nremote_state {\n backend = "s3"\n ...\n}\n\ngenerate "provider" {\n path = "provider.tf"\n if_exists = "overwrite_terragrunt"\n\n contents = <<EOF\nterraform {\n required_providers {\n aws …
Run Code Online (Sandbox Code Playgroud) 使用“terraform import”语法可以直接从 Terraform 导入资源。然而, terraspace没有关于此事的文档。他们的文档仅讨论如何通过将现有的 Terraform 状态文件移动到 S3 并配置后端来将其导入 Terraspace,以便 Terraspace 可以无缝地获取已经存在的 tfstate 文件。
有谁知道如何将现有基础设施导入 Terraspace?我在 AWS 中有一些现有的基础设施,我希望今后将其导入并由 Terraspace 管理。
模拟标准 npm 项目非常简单。在node_modules文件夹旁边创建一个__mocks__
文件夹,然后将包的名称作为文件,并在其中写入mock内容。
例子:/__mocks__/axios.ts
我陷入困境的是有一个 npm 包导入,如下所示:@auth0/auth0-react
我怎样才能模拟这个文件的内容?我尝试创建一个名为@auth0/auth0-react.tsx
但 jest 似乎没有拾取模拟文件的文件。当我导入import { Auth0Provider } from '@auth0/auth0-react';
and时console.log(Auth0Provider)
,我得到的只是标准Jest.fn()
属性。
这是模拟文件的内容
/* eslint-disable import/prefer-default-export */
export const Auth0Provider = (component: JSX.Element): JSX.Element => component;
Run Code Online (Sandbox Code Playgroud)
由于我没有使用jest.fn()
这一种方法,因此我希望console.log(Auth0Provider)
表明它包含一个函数。
在我的测试代码中,我在jest.mock('@auth0/auth0-react')
测试之前。有任何想法吗?
我有一个使用“创建反应应用程序重新连线”创建的反应应用程序。我已经安装了 ts-jest 并且希望能够自定义 Jest。我阅读了 ts-jest 的文档并npx ts-jest config:init
在项目的根级别执行以创建初始配置文件。为了测试 jest 是否确实使用该配置文件,我console.log(window);
在示例测试文件中编写了以下行,并修改了配置,将其testEnvironment
设置为“node”。
我预计测试会因window
未定义而失败,但我正在恢复窗口对象。我尝试将文件重命名为jest.config.ts
,但得到了相同的结果。
我对所有文件进行了全局搜索,以查看是否有另一个配置文件覆盖了我的配置,但没有找到。
我究竟做错了什么?我知道 jest 是通过 create-react-app (CRA) 预先打包的。我想 create-react-app-rewired 只会包含 CRA 之上的一些包装器,那么它从哪里获取配置呢?
terraform ×3
kubernetes ×2
ts-jest ×2
amazon-s3 ×1
config ×1
csr ×1
jestjs ×1
json-patch ×1
kubectl ×1
kustomize ×1
mocking ×1
patch ×1
terragrunt ×1
terraspace ×1
typescript ×1