diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..1818e72 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,543 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt + +name: build +on: + push: + branches: + - master + - main + - feature-** + paths-ignore: + - CHANGELOG.md + tags-ignore: + - v* + - sdk/* + - "**" + workflow_dispatch: {} +env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + PROVIDER: kubernetes-cert-manager + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} + PYPI_USERNAME: __token__ + PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + TRAVIS_OS_NAME: linux + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. + PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} + PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} + GOVERSION: 1.21.x + NODEVERSION: 20.x + PYTHONVERSION: "3.11" + DOTNETVERSION: | + 6.0.x + 3.1.301 + JAVAVERSION: "11" + AWS_REGION: us-west-2 + PULUMI_TEST_OWNER: moolumi + GOLANGCI_LINT_VERSION: v1.55.2 + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-k8s-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT_NUMBER: 637339343727 +jobs: + prerequisites: + runs-on: ubuntu-latest + name: prerequisites + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - if: github.event_name == 'pull_request' + name: Install Schema Tools + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/schema-tools + - name: Build codegen binaries + run: make codegen + - name: Build Schema + run: make generate_schema + - if: github.event_name == 'pull_request' + name: Check Schema is Valid + run: >- + echo 'SCHEMA_CHANGES<> $GITHUB_ENV + + schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV + + echo 'EOF' >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + - if: github.event_name == 'pull_request' + name: Comment on PR with Details of Schema Check + uses: thollander/actions-comment-pull-request@v2 + with: + message: | + ${{ env.SCHEMA_CHANGES }} + comment_tag: schemaCheck + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') && + github.actor == 'pulumi-bot' + name: Add label if no breaking changes + uses: actions-ecosystem/action-add-labels@v1.1.0 + with: + labels: impact/no-changelog-required + number: ${{ github.event.issue.number }} + github_token: ${{ secrets.GITHUB_TOKEN }} + - name: Build Provider + run: make provider + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar provider binaries + run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} + pulumi-gen-${{ env.PROVIDER}} + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin/provider.tar.gz + - name: Test Provider Library + run: make test_provider + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in building provider prerequisites + fields: repo,commit,author,action + status: ${{ job.status }} + build_sdks: + needs: prerequisites + runs-on: pulumi-ubuntu-8core + strategy: + fail-fast: true + matrix: + language: + - nodejs + - python + - dotnet + - go + - java + name: build_sdks + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Generate SDK + run: make generate_${{ matrix.language }} + - name: Build SDK + run: make build_${{ matrix.language }} + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar SDK folder + run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz + retention-days: 30 + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure while building SDKs + fields: repo,commit,author,action + status: ${{ job.status }} + test: + runs-on: pulumi-ubuntu-8core + needs: + - build_sdks + strategy: + fail-fast: true + matrix: + language: + - nodejs + - python + - dotnet + - go + - java + name: test + permissions: + contents: read + id-token: write + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Download SDK + uses: actions/download-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: UnTar SDK folder + run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{ + github.workspace}}/sdk/${{ matrix.language}} + - name: Update path + run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Install Node dependencies + run: yarn global add typescript + - run: dotnet nuget add source ${{ github.workspace }}/nuget + - name: Install Python deps + run: |- + pip3 install virtualenv==20.0.23 + pip3 install pipenv + - name: Install dependencies + run: make install_${{ matrix.language}}_sdk + - name: Install gotestfmt + uses: GoTestTools/gotestfmt-action@v2 + with: + version: v2.5.0 + token: ${{ secrets.GITHUB_TOKEN }} + - name: Run tests + run: >- + set -euo pipefail + + cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in SDK tests + fields: repo,commit,author,action + status: ${{ job.status }} + publish: + runs-on: ubuntu-latest + needs: test + name: publish + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Clear GitHub Actions Ubuntu runner disk space + uses: jlumbroso/free-disk-space@v1.3.1 + with: + tool-cache: false + dotnet: false + android: true + haskell: true + swap-storage: true + large-packages: false + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-region: us-east-2 + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + role-duration-seconds: 7200 + role-session-name: ${{ env.PROVIDER }}@githubActions + role-external-id: upload-pulumi-release + role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} + - name: Set PreRelease Version + run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)" + >> $GITHUB_ENV + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s + version: latest + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in publishing binaries + fields: repo,commit,author,action + status: ${{ job.status }} + publish_sdk: + runs-on: ubuntu-latest + needs: publish + name: publish_sdk + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Download python SDK + uses: actions/download-artifact@v4 + with: + name: python-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress python SDK + run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C + ${{github.workspace}}/sdk/python + - name: Download dotnet SDK + uses: actions/download-artifact@v4 + with: + name: dotnet-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress dotnet SDK + run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C + ${{github.workspace}}/sdk/dotnet + - name: Download nodejs SDK + uses: actions/download-artifact@v4 + with: + name: nodejs-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress nodejs SDK + run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C + ${{github.workspace}}/sdk/nodejs + - name: Install Twine + run: python -m pip install pip twine + - name: Publish SDKs + run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }} + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + PYPI_PUBLISH_ARTIFACTS: all + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in publishing SDK + fields: repo,commit,author,action + status: ${{ job.status }} + publish_java_sdk: + runs-on: ubuntu-latest + continue-on-error: true + needs: publish + name: publish_java_sdk + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download java SDK + uses: actions/download-artifact@v4 + with: + name: java-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress java SDK + run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C + ${{github.workspace}}/sdk/java + - name: Set PACKAGE_VERSION to Env + run: echo "PACKAGE_VERSION=$(pulumictl get version --language generic)" >> + $GITHUB_ENV + - name: Publish Java SDK + uses: gradle/gradle-build-action@v3 + with: + arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository + build-root-directory: ./sdk/java + gradle-version: 7.4.1 + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + ref: ${{ env.PR_COMMIT_SHA }} + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: golangci-lint provider pkg + uses: golangci/golangci-lint-action@v4 + with: + version: ${{ env.GOLANGCI_LINT_VERSION }} + args: -c ../.golangci.yml + working-directory: provider + name: lint + if: github.event_name == 'repository_dispatch' || + github.event.pull_request.head.repo.full_name == github.repository diff --git a/.github/workflows/command-dispatch.yml b/.github/workflows/command-dispatch.yml new file mode 100644 index 0000000..9bf9c3c --- /dev/null +++ b/.github/workflows/command-dispatch.yml @@ -0,0 +1,58 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt + +name: command-dispatch +on: + issue_comment: + types: + - created + - edited +env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + PROVIDER: kubernetes-cert-manager + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} + PYPI_USERNAME: __token__ + PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + TRAVIS_OS_NAME: linux + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. + PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} + PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} + GOVERSION: 1.21.x + NODEVERSION: 20.x + PYTHONVERSION: "3.11" + DOTNETVERSION: | + 6.0.x + 3.1.301 + JAVAVERSION: "11" + AWS_REGION: us-west-2 + PULUMI_TEST_OWNER: moolumi + GOLANGCI_LINT_VERSION: v1.55.2 + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-k8s-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT_NUMBER: 637339343727 +jobs: + command-dispatch-for-testing: + runs-on: ubuntu-latest + name: command-dispatch-for-testing + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - uses: peter-evans/slash-command-dispatch@v2 + with: + token: ${{ secrets.PULUMI_BOT_TOKEN }} + reaction-token: ${{ secrets.GITHUB_TOKEN }} + commands: run-acceptance-tests + permission: write + issue-type: pull-request + repository: pulumi/pulumi-kubernetes-cert-manager + if: ${{ github.event.issue.pull_request }} diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml new file mode 100644 index 0000000..125874c --- /dev/null +++ b/.github/workflows/prerelease.yml @@ -0,0 +1,513 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt + +name: prerelease +on: + push: + tags: + - v*.*.*-** +env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + PROVIDER: kubernetes-cert-manager + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} + PYPI_USERNAME: __token__ + PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + TRAVIS_OS_NAME: linux + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. + PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} + PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} + GOVERSION: 1.21.x + NODEVERSION: 20.x + PYTHONVERSION: "3.11" + DOTNETVERSION: | + 6.0.x + 3.1.301 + JAVAVERSION: "11" + AWS_REGION: us-west-2 + PULUMI_TEST_OWNER: moolumi + GOLANGCI_LINT_VERSION: v1.55.2 + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-k8s-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT_NUMBER: 637339343727 + IS_PRERELEASE: true +jobs: + prerequisites: + runs-on: ubuntu-latest + name: prerequisites + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - if: github.event_name == 'pull_request' + name: Install Schema Tools + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/schema-tools + - name: Build codegen binaries + run: make codegen + - name: Build Schema + run: make generate_schema + - if: github.event_name == 'pull_request' + name: Check Schema is Valid + run: >- + echo 'SCHEMA_CHANGES<> $GITHUB_ENV + + schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV + + echo 'EOF' >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + - if: github.event_name == 'pull_request' + name: Comment on PR with Details of Schema Check + uses: thollander/actions-comment-pull-request@v2 + with: + message: | + ${{ env.SCHEMA_CHANGES }} + comment_tag: schemaCheck + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') && + github.actor == 'pulumi-bot' + name: Add label if no breaking changes + uses: actions-ecosystem/action-add-labels@v1.1.0 + with: + labels: impact/no-changelog-required + number: ${{ github.event.issue.number }} + github_token: ${{ secrets.GITHUB_TOKEN }} + - name: Build Provider + run: make provider + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar provider binaries + run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} + pulumi-gen-${{ env.PROVIDER}} + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin/provider.tar.gz + - name: Test Provider Library + run: make test_provider + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in building provider prerequisites + fields: repo,commit,author,action + status: ${{ job.status }} + build_sdks: + needs: prerequisites + runs-on: pulumi-ubuntu-8core + strategy: + fail-fast: true + matrix: + language: + - nodejs + - python + - dotnet + - go + - java + name: build_sdks + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Generate SDK + run: make generate_${{ matrix.language }} + - name: Build SDK + run: make build_${{ matrix.language }} + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar SDK folder + run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure while building SDKs + fields: repo,commit,author,action + status: ${{ job.status }} + test: + runs-on: pulumi-ubuntu-8core + needs: + - build_sdks + strategy: + fail-fast: true + matrix: + language: + - nodejs + - python + - dotnet + - go + - java + name: test + permissions: + contents: read + id-token: write + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Download SDK + uses: actions/download-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: UnTar SDK folder + run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{ + github.workspace}}/sdk/${{ matrix.language}} + - name: Update path + run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Install Node dependencies + run: yarn global add typescript + - run: dotnet nuget add source ${{ github.workspace }}/nuget + - name: Install Python deps + run: |- + pip3 install virtualenv==20.0.23 + pip3 install pipenv + - name: Install dependencies + run: make install_${{ matrix.language}}_sdk + - name: Install gotestfmt + uses: GoTestTools/gotestfmt-action@v2 + with: + version: v2.5.0 + token: ${{ secrets.GITHUB_TOKEN }} + - name: Run tests + run: >- + set -euo pipefail + + cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in SDK tests + fields: repo,commit,author,action + status: ${{ job.status }} + publish: + runs-on: ubuntu-latest + needs: test + name: publish + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Clear GitHub Actions Ubuntu runner disk space + uses: jlumbroso/free-disk-space@v1.3.1 + with: + tool-cache: false + dotnet: false + android: true + haskell: true + swap-storage: true + large-packages: false + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-region: us-east-2 + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + role-duration-seconds: 7200 + role-session-name: ${{ env.PROVIDER }}@githubActions + role-external-id: upload-pulumi-release + role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} + - name: Set PreRelease Version + run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)" + >> $GITHUB_ENV + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + args: -p 3 -f .goreleaser.prerelease.yml --clean --skip=validate --timeout 60m0s + version: latest + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in publishing binaries + fields: repo,commit,author,action + status: ${{ job.status }} + publish_sdk: + runs-on: ubuntu-latest + needs: publish + name: publish_sdk + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Download python SDK + uses: actions/download-artifact@v4 + with: + name: python-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress python SDK + run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C + ${{github.workspace}}/sdk/python + - name: Download dotnet SDK + uses: actions/download-artifact@v4 + with: + name: dotnet-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress dotnet SDK + run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C + ${{github.workspace}}/sdk/dotnet + - name: Download nodejs SDK + uses: actions/download-artifact@v4 + with: + name: nodejs-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress nodejs SDK + run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C + ${{github.workspace}}/sdk/nodejs + - name: Install Twine + run: python -m pip install pip twine + - name: Publish SDKs + run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }} + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + PYPI_PUBLISH_ARTIFACTS: all + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in publishing SDK + fields: repo,commit,author,action + status: ${{ job.status }} + publish_java_sdk: + runs-on: ubuntu-latest + continue-on-error: true + needs: publish + name: publish_java_sdk + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download java SDK + uses: actions/download-artifact@v4 + with: + name: java-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress java SDK + run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C + ${{github.workspace}}/sdk/java + - name: Set PACKAGE_VERSION to Env + run: echo "PACKAGE_VERSION=$(pulumictl get version --language generic)" >> + $GITHUB_ENV + - name: Publish Java SDK + uses: gradle/gradle-build-action@v3 + with: + arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository + build-root-directory: ./sdk/java + gradle-version: 7.4.1 diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000..ceeca7a --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,55 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt + +name: pull-request +on: + pull_request_target: {} +env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + PROVIDER: kubernetes-cert-manager + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} + PYPI_USERNAME: __token__ + PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + TRAVIS_OS_NAME: linux + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. + PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} + PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} + GOVERSION: 1.21.x + NODEVERSION: 20.x + PYTHONVERSION: "3.11" + DOTNETVERSION: | + 6.0.x + 3.1.301 + JAVAVERSION: "11" + AWS_REGION: us-west-2 + PULUMI_TEST_OWNER: moolumi + GOLANGCI_LINT_VERSION: v1.55.2 + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-k8s-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT_NUMBER: 637339343727 +jobs: + comment-on-pr: + runs-on: ubuntu-latest + name: comment-on-pr + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Comment PR + uses: thollander/actions-comment-pull-request@v2 + with: + message: > + PR is now waiting for a maintainer to run the acceptance tests. + + **Note for the maintainer:** To run the acceptance tests, please comment */run-acceptance-tests* on the PR + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + if: github.event.pull_request.head.repo.full_name != github.repository diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7f9d1ec..366ce96 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,155 +1,543 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt + +name: release +on: + push: + tags: + - v*.*.* + - "!v*.*.*-**" env: - # THIS GITHUB_TOKEN IS A REQUIREMENT TO BE ABLE TO WRITE TO GH RELEASES - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # IF YOU NEED TO PUBLISH A NPM PACKAGE THEN ENSURE A NPM_TOKEN SECRET IS SET - # AND PUBLISH_NPM: TRUE. IF YOU WANT TO PUBLISH TO A PRIVATE NPM REGISTRY - # THEN ENSURE THE NPM_REGISTRY_URL IS CHANGED - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + PROVIDER: kubernetes-cert-manager + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget NPM_TOKEN: ${{ secrets.NPM_TOKEN }} - PUBLISH_NPM: true - NPM_REGISTRY_URL: https://registry.npmjs.org - # IF YOU NEED TO PUBLISH A NUGET PACKAGE THEN ENSURE AN NUGET_PUBLISH_KEY - # SECRET IS SET AND PUBLISH_NUGET: TRUE. IF YOU WANT TO PUBLISH TO AN ALTERNATIVE - # NPM REGISTRY THEN ENSURE THE NPM_REGISTRY_URL IS CHANGED + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} - NUGET_FEED_URL: https://api.nuget.org/v3/index.json - PUBLISH_NUGET: true - # IF YOU NEED TO PUBLISH A PYPI PACKAGE THEN ENSURE AN PYPI_API_TOKEN - # SECRET IS SET AND PUBLISH_PYPI: TRUE. IF YOU WANT TO PUBLISH TO AN ALTERNATIVE - # PYPI REGISTRY THEN ENSURE THE PYPI_REPOSITORY_URL IS SET. IF YOU ARE USING AN API_TOKEN THEN - # YOU DO NOT NEED TO CHANGE THE PYPI_USERNAME (__token__) , IF YOU ARE USING PASSWORD AUTHENTICATION THEN YOU WILL - # NEED TO CHANGE TO USE THE CORRECT PASSWORD - PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }} - PYPI_USERNAME: "pulumi" - PYPI_REPOSITORY_URL: "" - PUBLISH_PYPI: true + PYPI_USERNAME: __token__ + PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + TRAVIS_OS_NAME: linux + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. + PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} + PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} + GOVERSION: 1.21.x + NODEVERSION: 20.x + PYTHONVERSION: "3.11" + DOTNETVERSION: | + 6.0.x + 3.1.301 + JAVAVERSION: "11" + AWS_REGION: us-west-2 + PULUMI_TEST_OWNER: moolumi + GOLANGCI_LINT_VERSION: v1.55.2 + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-k8s-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT_NUMBER: 637339343727 jobs: - publish_binary: - name: Publish Provider Binary + prerequisites: runs-on: ubuntu-latest + name: prerequisites steps: - - name: Checkout Repo - uses: actions/checkout@v2 - - name: Unshallow clone for tags - run: git fetch --prune --unshallow --tags - - name: Setup Go - uses: actions/setup-go@v2 - with: - go-version: 1.19.x - - name: Install pulumictl - uses: jaxxstorm/action-install-gh-release@v1.1.0 - with: - repo: pulumi/pulumictl - - name: Install Pulumi CLI - uses: pulumi/action-install-pulumi-cli@v1.0.1 - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-region: us-east-2 - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - role-duration-seconds: 3600 - role-external-id: upload-pulumi-release - role-session-name: uploader@githubActions - role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v2 - with: - args: -f .goreleaser.yml --rm-dist - version: latest - publish_sdk: - name: Publish SDKs - runs-on: ubuntu-latest - needs: publish_binary + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - if: github.event_name == 'pull_request' + name: Install Schema Tools + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/schema-tools + - name: Build codegen binaries + run: make codegen + - name: Build Schema + run: make generate_schema + - if: github.event_name == 'pull_request' + name: Check Schema is Valid + run: >- + echo 'SCHEMA_CHANGES<> $GITHUB_ENV + + schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV + + echo 'EOF' >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + - if: github.event_name == 'pull_request' + name: Comment on PR with Details of Schema Check + uses: thollander/actions-comment-pull-request@v2 + with: + message: | + ${{ env.SCHEMA_CHANGES }} + comment_tag: schemaCheck + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') && + github.actor == 'pulumi-bot' + name: Add label if no breaking changes + uses: actions-ecosystem/action-add-labels@v1.1.0 + with: + labels: impact/no-changelog-required + number: ${{ github.event.issue.number }} + github_token: ${{ secrets.GITHUB_TOKEN }} + - name: Build Provider + run: make provider + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar provider binaries + run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} + pulumi-gen-${{ env.PROVIDER}} + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin/provider.tar.gz + - name: Test Provider Library + run: make test_provider + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in building provider prerequisites + fields: repo,commit,author,action + status: ${{ job.status }} + build_sdks: + needs: prerequisites + runs-on: pulumi-ubuntu-8core + strategy: + fail-fast: true + matrix: + language: + - nodejs + - python + - dotnet + - go + - java + name: build_sdks steps: - - name: Checkout Repo - uses: actions/checkout@v2 - - name: Unshallow clone for tags - run: git fetch --prune --unshallow --tags - - name: Install Go - uses: actions/setup-go@v2 - with: - go-version: ${{ matrix.goversion }} - - name: Install pulumictl - uses: jaxxstorm/action-install-gh-release@v1.1.0 - with: - repo: pulumi/pulumictl - - name: Install Pulumi CLI - uses: pulumi/action-install-pulumi-cli@v1.0.1 - - name: Setup Node - uses: actions/setup-node@v1 - with: - node-version: ${{matrix.nodeversion}} - registry-url: ${{env.NPM_REGISTRY_URL}} - - name: Setup DotNet - uses: actions/setup-dotnet@v1 - with: - dotnet-version: ${{matrix.dotnetverson}} - - name: Setup Python - uses: actions/setup-python@v1 - with: - python-version: ${{matrix.pythonversion}} - - name: Build SDK - run: make build_${{ matrix.language }}_sdk - - name: Check worktree clean - run: | - git update-index -q --refresh - if ! git diff-files --quiet; then - >&2 echo "error: working tree is not clean, aborting!" - git status - git diff - exit 1 - fi - - if: ${{ matrix.language == 'python' && env.PUBLISH_PYPI == 'true' }} - name: Publish package to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 - with: - user: ${{ env.PYPI_USERNAME }} - password: ${{ env.PYPI_PASSWORD }} - packages_dir: ${{github.workspace}}/sdk/python/bin/dist - - if: ${{ matrix.language == 'nodejs' && env.PUBLISH_NPM == 'true' }} - uses: JS-DevTools/npm-publish@v1 - with: - access: "public" - token: ${{ env.NPM_TOKEN }} - package: ${{github.workspace}}/sdk/nodejs/bin/package.json - - if: ${{ matrix.language == 'dotnet' && env.PUBLISH_NUGET == 'true' }} - name: publish nuget package - run: | - dotnet nuget push ${{github.workspace}}/sdk/dotnet/bin/Debug/*.nupkg -s ${{ env.NUGET_FEED_URL }} -k ${{ env.NUGET_PUBLISH_KEY }} - echo "done publishing packages" + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Generate SDK + run: make generate_${{ matrix.language }} + - name: Build SDK + run: make build_${{ matrix.language }} + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar SDK folder + run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure while building SDKs + fields: repo,commit,author,action + status: ${{ job.status }} + test: + runs-on: pulumi-ubuntu-8core + needs: + - build_sdks strategy: fail-fast: true matrix: - dotnetversion: - - 3.1.301 - goversion: - - 1.19.x language: - - nodejs - - python - - dotnet - - go - nodeversion: - - 14.x - pythonversion: - - "3.9" + - nodejs + - python + - dotnet + - go + - java + name: test + permissions: + contents: read + id-token: write + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Download SDK + uses: actions/download-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: UnTar SDK folder + run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{ + github.workspace}}/sdk/${{ matrix.language}} + - name: Update path + run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Install Node dependencies + run: yarn global add typescript + - run: dotnet nuget add source ${{ github.workspace }}/nuget + - name: Install Python deps + run: |- + pip3 install virtualenv==20.0.23 + pip3 install pipenv + - name: Install dependencies + run: make install_${{ matrix.language}}_sdk + - name: Install gotestfmt + uses: GoTestTools/gotestfmt-action@v2 + with: + version: v2.5.0 + token: ${{ secrets.GITHUB_TOKEN }} + - name: Run tests + run: >- + set -euo pipefail + + cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in SDK tests + fields: repo,commit,author,action + status: ${{ job.status }} + publish: + runs-on: ubuntu-latest + needs: test + name: publish + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Clear GitHub Actions Ubuntu runner disk space + uses: jlumbroso/free-disk-space@v1.3.1 + with: + tool-cache: false + dotnet: false + android: true + haskell: true + swap-storage: true + large-packages: false + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-region: us-east-2 + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + role-duration-seconds: 7200 + role-session-name: ${{ env.PROVIDER }}@githubActions + role-external-id: upload-pulumi-release + role-to-assume: ${{ secrets.AWS_UPLOAD_ROLE_ARN }} + - name: Set PreRelease Version + run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)" + >> $GITHUB_ENV + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v5 + with: + args: -p 3 release --clean --timeout 60m0s + version: latest + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in publishing binaries + fields: repo,commit,author,action + status: ${{ job.status }} + publish_sdk: + runs-on: ubuntu-latest + needs: publish + name: publish_sdks + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Download python SDK + uses: actions/download-artifact@v4 + with: + name: python-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress python SDK + run: tar -zxf ${{github.workspace}}/sdk/python.tar.gz -C + ${{github.workspace}}/sdk/python + - name: Download dotnet SDK + uses: actions/download-artifact@v4 + with: + name: dotnet-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress dotnet SDK + run: tar -zxf ${{github.workspace}}/sdk/dotnet.tar.gz -C + ${{github.workspace}}/sdk/dotnet + - name: Download nodejs SDK + uses: actions/download-artifact@v4 + with: + name: nodejs-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress nodejs SDK + run: tar -zxf ${{github.workspace}}/sdk/nodejs.tar.gz -C + ${{github.workspace}}/sdk/nodejs + - name: Install Twine + run: python -m pip install pip twine + - name: Publish SDKs + run: ./ci-scripts/ci/publish-tfgen-package ${{ github.workspace }} + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + PYPI_PUBLISH_ARTIFACTS: all + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in publishing SDK + fields: repo,commit,author,action + status: ${{ job.status }} + publish_java_sdk: + runs-on: ubuntu-latest + continue-on-error: true + needs: publish + name: publish_java_sdk + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download java SDK + uses: actions/download-artifact@v4 + with: + name: java-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: Uncompress java SDK + run: tar -zxf ${{github.workspace}}/sdk/java.tar.gz -C + ${{github.workspace}}/sdk/java + - name: Set PACKAGE_VERSION to Env + run: echo "PACKAGE_VERSION=$(pulumictl get version --language generic)" >> + $GITHUB_ENV + - name: Publish Java SDK + uses: gradle/gradle-build-action@v3 + with: + arguments: publishToSonatype closeAndReleaseSonatypeStagingRepository + build-root-directory: ./sdk/java + gradle-version: 7.4.1 tag_sdk: - name: tag_sdk + runs-on: ubuntu-latest needs: publish_sdk + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Add SDK version tag + run: git tag sdk/v$(pulumictl get version --language generic) && git push origin + sdk/v$(pulumictl get version --language generic) + name: tag_sdk + dispatch_docs_build: runs-on: ubuntu-latest + needs: tag_sdk steps: - - name: Checkout Repo - uses: actions/checkout@v2 - - name: Install pulumictl - uses: jaxxstorm/action-install-gh-release@v1.2.0 - with: - repo: pulumi/pulumictl - - name: Add SDK version tag - run: git tag sdk/v$(pulumictl get version --language generic) && git push origin - sdk/v$(pulumictl get version --language generic) -name: release -"on": - push: - tags: - - v*.*.* + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Dispatch Event + run: pulumictl create docs-build pulumi-${{ env.PROVIDER }} + ${GITHUB_REF#refs/tags/} + env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + name: dispatch_docs_build diff --git a/.github/workflows/run-acceptance-tests.yml b/.github/workflows/run-acceptance-tests.yml new file mode 100644 index 0000000..807dc04 --- /dev/null +++ b/.github/workflows/run-acceptance-tests.yml @@ -0,0 +1,393 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt + +name: run-acceptance-tests +on: + repository_dispatch: + types: + - run-acceptance-tests-command + pull_request: + branches: + - master + - main + paths-ignore: + - CHANGELOG.md + workflow_dispatch: {} +env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + PROVIDER: kubernetes-cert-manager + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} + PYPI_USERNAME: __token__ + PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + TRAVIS_OS_NAME: linux + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. + PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} + PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} + GOVERSION: 1.21.x + NODEVERSION: 20.x + PYTHONVERSION: "3.11" + DOTNETVERSION: | + 6.0.x + 3.1.301 + JAVAVERSION: "11" + AWS_REGION: us-west-2 + PULUMI_TEST_OWNER: moolumi + GOLANGCI_LINT_VERSION: v1.55.2 + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-k8s-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT_NUMBER: 637339343727 + PR_COMMIT_SHA: ${{ github.event.client_payload.pull_request.head.sha }} +jobs: + comment-notification: + runs-on: ubuntu-latest + name: comment-notification + steps: + - name: Create URL to the run output + id: vars + run: echo + run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID + >> "$GITHUB_OUTPUT" + - name: Update with Result + uses: peter-evans/create-or-update-comment@v1 + with: + token: ${{ secrets.PULUMI_BOT_TOKEN }} + repository: ${{ github.event.client_payload.github.payload.repository.full_name }} + issue-number: ${{ github.event.client_payload.github.payload.issue.number }} + body: "Please view the PR build: ${{ steps.vars.outputs.run-url }}" + if: github.event_name == 'repository_dispatch' + prerequisites: + runs-on: ubuntu-latest + name: prerequisites + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + ref: ${{ env.PR_COMMIT_SHA }} + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - if: github.event_name == 'pull_request' + name: Install Schema Tools + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/schema-tools + - name: Build codegen binaries + run: make codegen + - name: Build Schema + run: make generate_schema + - if: github.event_name == 'pull_request' + name: Check Schema is Valid + run: >- + echo 'SCHEMA_CHANGES<> $GITHUB_ENV + + schema-tools compare -p ${{ env.PROVIDER }} -o ${{ github.event.repository.default_branch }} -n --local-path=provider/cmd/pulumi-resource-${{ env.PROVIDER }}/schema.json >> $GITHUB_ENV + + echo 'EOF' >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + - if: github.event_name == 'pull_request' + name: Comment on PR with Details of Schema Check + uses: thollander/actions-comment-pull-request@v2 + with: + message: | + ${{ env.SCHEMA_CHANGES }} + comment_tag: schemaCheck + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - if: contains(env.SCHEMA_CHANGES, 'Looking good! No breaking changes found.') && + github.actor == 'pulumi-bot' + name: Add label if no breaking changes + uses: actions-ecosystem/action-add-labels@v1.1.0 + with: + labels: impact/no-changelog-required + number: ${{ github.event.issue.number }} + github_token: ${{ secrets.GITHUB_TOKEN }} + - name: Build Provider + run: make provider + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar provider binaries + run: tar -zcf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin/ pulumi-resource-${{ env.PROVIDER }} + pulumi-gen-${{ env.PROVIDER}} + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin/provider.tar.gz + - name: Test Provider Library + run: make test_provider + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v4 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in building provider prerequisites + fields: repo,commit,author,action + status: ${{ job.status }} + if: github.event_name == 'repository_dispatch' || + github.event.pull_request.head.repo.full_name == github.repository + build_sdks: + needs: prerequisites + runs-on: pulumi-ubuntu-8core + strategy: + fail-fast: true + matrix: + language: + - nodejs + - python + - dotnet + - go + - java + name: build_sdks + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + ref: ${{ env.PR_COMMIT_SHA }} + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Generate SDK + run: make generate_${{ matrix.language }} + - name: Build SDK + run: make build_${{ matrix.language }} + - name: Check worktree clean + run: ./ci-scripts/ci/check-worktree-is-clean + - run: git status --porcelain + - name: Tar SDK folder + run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} . + - name: Upload artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/${{ matrix.language }}.tar.gz + retention-days: 30 + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure while building SDKs + fields: repo,commit,author,action + status: ${{ job.status }} + if: github.event_name == 'repository_dispatch' || + github.event.pull_request.head.repo.full_name == github.repository + test: + runs-on: pulumi-ubuntu-8core + needs: + - build_sdks + strategy: + fail-fast: true + matrix: + language: + - nodejs + - python + - dotnet + - go + - java + name: test + permissions: + contents: read + id-token: write + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + ref: ${{ env.PR_COMMIT_SHA }} + - name: Checkout Scripts Repo + uses: actions/checkout@v4 + with: + path: ci-scripts + repository: pulumi/scripts + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: ${{ env.JAVAVERSION }} + distribution: temurin + cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v3 + with: + gradle-version: "7.6" + - name: Download provider + tfgen binaries + uses: actions/download-artifact@v4 + with: + name: pulumi-${{ env.PROVIDER }}-provider.tar.gz + path: ${{ github.workspace }}/bin + - name: UnTar provider binaries + run: tar -zxf ${{ github.workspace }}/bin/provider.tar.gz -C ${{ + github.workspace}}/bin + - name: Restore Binary Permissions + run: find ${{ github.workspace }} -name "pulumi-*-${{ env.PROVIDER }}" -print + -exec chmod +x {} \; + - name: Download SDK + uses: actions/download-artifact@v4 + with: + name: ${{ matrix.language }}-sdk.tar.gz + path: ${{ github.workspace}}/sdk/ + - name: UnTar SDK folder + run: tar -zxf ${{ github.workspace}}/sdk/${{ matrix.language}}.tar.gz -C ${{ + github.workspace}}/sdk/${{ matrix.language}} + - name: Update path + run: echo "${{ github.workspace }}/bin" >> $GITHUB_PATH + - name: Install Node dependencies + run: yarn global add typescript + - run: dotnet nuget add source ${{ github.workspace }}/nuget + - name: Install Python deps + run: |- + pip3 install virtualenv==20.0.23 + pip3 install pipenv + - name: Install dependencies + run: make install_${{ matrix.language}}_sdk + - name: Install gotestfmt + uses: GoTestTools/gotestfmt-action@v2 + with: + version: v2.5.0 + token: ${{ secrets.GITHUB_TOKEN }} + - name: Run tests + run: >- + set -euo pipefail + + cd examples && go test -v -json -count=1 -cover -timeout 2h -tags=${{ matrix.language }} -parallel 4 . 2>&1 | tee /tmp/gotest.log | gotestfmt + - if: failure() && github.event_name == 'push' + name: Notify Slack + uses: 8398a7/action-slack@v3 + with: + author_name: Failure in SDK tests + fields: repo,commit,author,action + status: ${{ job.status }} + if: github.event_name == 'repository_dispatch' || + github.event.pull_request.head.repo.full_name == github.repository + sentinel: + runs-on: ubuntu-latest + name: sentinel + steps: + - name: Is workflow a success + run: echo yes + if: github.event_name == 'repository_dispatch' || + github.event.pull_request.head.repo.full_name == github.repository + needs: + - test + - lint + lint: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + ref: ${{ env.PR_COMMIT_SHA }} + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: golangci-lint provider pkg + uses: golangci/golangci-lint-action@v4 + with: + version: ${{ env.GOLANGCI_LINT_VERSION }} + args: -c ../.golangci.yml + working-directory: provider + name: lint + if: github.event_name == 'repository_dispatch' || + github.event.pull_request.head.repo.full_name == github.repository diff --git a/.github/workflows/weekly-pulumi-update.yml b/.github/workflows/weekly-pulumi-update.yml new file mode 100644 index 0000000..301b59a --- /dev/null +++ b/.github/workflows/weekly-pulumi-update.yml @@ -0,0 +1,128 @@ +# WARNING: This file is autogenerated - changes will be overwritten if not made via https://github.com/pulumi/ci-mgmt + +name: weekly-pulumi-update +on: + schedule: + - cron: 35 12 * * 4 + workflow_dispatch: {} +env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + PROVIDER: kubernetes-cert-manager + PULUMI_ACCESS_TOKEN: ${{ secrets.PULUMI_ACCESS_TOKEN }} + PULUMI_LOCAL_NUGET: ${{ github.workspace }}/nuget + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }} + PYPI_USERNAME: __token__ + PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }} + TRAVIS_OS_NAME: linux + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + PULUMI_GO_DEP_ROOT: ${{ github.workspace }}/.. + PUBLISH_REPO_USERNAME: ${{ secrets.OSSRH_USERNAME }} + PUBLISH_REPO_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} + SIGNING_KEY_ID: ${{ secrets.JAVA_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.JAVA_SIGNING_KEY }} + SIGNING_PASSWORD: ${{ secrets.JAVA_SIGNING_PASSWORD }} + GOVERSION: 1.21.x + NODEVERSION: 20.x + PYTHONVERSION: "3.11" + DOTNETVERSION: | + 6.0.x + 3.1.301 + JAVAVERSION: "11" + AWS_REGION: us-west-2 + PULUMI_TEST_OWNER: moolumi + GOLANGCI_LINT_VERSION: v1.55.2 + GOOGLE_CI_SERVICE_ACCOUNT_EMAIL: pulumi-ci@pulumi-k8s-provider.iam.gserviceaccount.com + GOOGLE_CI_WORKLOAD_IDENTITY_POOL: pulumi-ci + GOOGLE_CI_WORKLOAD_IDENTITY_PROVIDER: pulumi-ci + GOOGLE_PROJECT_NUMBER: 637339343727 +jobs: + weekly-pulumi-update: + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + with: + lfs: true + - name: Unshallow clone for tags + run: git fetch --prune --unshallow --tags + - name: Install Go + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVERSION }} + - name: Install pulumictl + uses: jaxxstorm/action-install-gh-release@v1.11.0 + with: + repo: pulumi/pulumictl + - name: Install Pulumi CLI + uses: pulumi/actions@v5 + - name: Setup DotNet + uses: actions/setup-dotnet@v4 + with: + dotnet-version: ${{ env.DOTNETVERSION }} + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODEVERSION }} + registry-url: https://registry.npmjs.org + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: ${{ env.PYTHONVERSION }} + - name: Update Pulumi/Pulumi + id: gomod + run: >- + git config --local user.email 'bot@pulumi.com' + + git config --local user.name 'pulumi-bot' + + git checkout -b update-pulumi/${{ github.run_id }}-${{ github.run_number }} + + for MODFILE in $(find . -name go.mod); do pushd $(dirname $MODFILE); go get github.com/pulumi/pulumi/pkg/v3 github.com/pulumi/pulumi/sdk/v3; go mod tidy; popd; done + + git update-index -q --refresh + + if ! git diff-files --quiet; then echo changes=1 >> "$GITHUB_OUTPUT"; fi + - name: Provider with Pulumi Upgrade + if: steps.gomod.outputs.changes != 0 + run: >- + make codegen && make local_generate + + git add sdk/nodejs + + git commit -m "Regenerating Node.js SDK based on updated modules" || echo "ignore commit failure, may be empty" + + git add sdk/python + + git commit -m "Regenerating Python SDK based on updated modules" || echo "ignore commit failure, may be empty" + + git add sdk/dotnet + + git commit -m "Regenerating .NET SDK based on updated modules" || echo "ignore commit failure, may be empty" + + git add sdk/go* + + git commit -m "Regenerating Go SDK based on updated modules" || echo "ignore commit failure, may be empty" + + git add sdk/java* + + git commit -m "Regenerating Java SDK based on updated modules" || echo "ignore commit failure, may be empty" + + git add . + + git commit -m "Updated modules" || echo "ignore commit failure, may be empty" + + git push origin update-pulumi/${{ github.run_id }}-${{ github.run_number }} + - name: Create PR + id: create-pr + if: steps.gomod.outputs.changes != 0 + uses: repo-sync/pull-request@v2.6.2 + with: + source_branch: update-pulumi/${{ github.run_id }}-${{ github.run_number }} + destination_branch: master + pr_title: Automated Pulumi/Pulumi upgrade + github_token: ${{ secrets.PULUMI_BOT_TOKEN }} + env: + GITHUB_TOKEN: ${{ secrets.PULUMI_BOT_TOKEN }} + name: weekly-pulumi-update diff --git a/.gitignore b/.gitignore index bb692ca..d19125a 100644 --- a/.gitignore +++ b/.gitignore @@ -17,5 +17,3 @@ nuget/ ci-scripts/ *.tar.gz - -/provider/cmd/pulumi-resource-*/schema.go diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..6b202d3 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,6 @@ +run: + timeout: 10m + +issues: + exclude-dirs: + - sdk diff --git a/Makefile b/Makefile index 295d89d..24e1396 100644 --- a/Makefile +++ b/Makefile @@ -8,11 +8,20 @@ CODEGEN := pulumi-gen-${PACK} VERSION_PATH := pkg/version.Version WORKING_DIR := $(shell pwd) -SCHEMA_PATH := ${WORKING_DIR}/schema.json +SCHEMA_PATH := ${WORKING_DIR}/provider/cmd/${PROVIDER}/schema.json GOPATH := $(shell go env GOPATH) -generate:: gen_go_sdk gen_dotnet_sdk gen_nodejs_sdk gen_python_sdk + +codegen: # Required by CI + rm -rf ${WORKING_DIR}/bin/${CODEGEN} + cd provider/cmd/${CODEGEN} && go build -o ${WORKING_DIR}/bin/${CODEGEN} + +provider: build_provider # Required by CI +test_provider: # Required by CI +generate_schema: # Required by CI + +generate:: gen_go_sdk gen_dotnet_sdk gen_nodejs_sdk gen_python_sdk generate_java build:: build_provider build_dotnet_sdk build_nodejs_sdk build_python_sdk @@ -34,14 +43,18 @@ install_provider:: build_provider gen_go_sdk:: rm -rf sdk/go - cd provider/cmd/${CODEGEN} && go run . go ../../../sdk/go ${SCHEMA_PATH} + bin/${CODEGEN} go sdk/go ${SCHEMA_PATH} +build_go_sdk:: +generate_go: gen_go_sdk # Required by CI +build_go: # Required by CI +install_go_sdk:: # Required by CI # .NET SDK gen_dotnet_sdk:: rm -rf sdk/dotnet - cd provider/cmd/${CODEGEN} && go run . dotnet ../../../sdk/dotnet ${SCHEMA_PATH} + bin/${CODEGEN} dotnet sdk/dotnet ${SCHEMA_PATH} build_dotnet_sdk:: DOTNET_VERSION := $(shell pulumictl get version --language dotnet) build_dotnet_sdk:: gen_dotnet_sdk @@ -49,17 +62,19 @@ build_dotnet_sdk:: gen_dotnet_sdk echo "${DOTNET_VERSION}" >version.txt && \ dotnet build /p:Version=${DOTNET_VERSION} -install_dotnet_sdk:: build_dotnet_sdk +install_dotnet_sdk:: # Required by CI rm -rf ${WORKING_DIR}/nuget mkdir -p ${WORKING_DIR}/nuget find . -name '*.nupkg' -print -exec cp -p {} ${WORKING_DIR}/nuget \; +generate_dotnet: gen_dotnet_sdk # Required by CI +build_dotnet: # Required by CI # Node.js SDK gen_nodejs_sdk:: rm -rf sdk/nodejs - cd provider/cmd/${CODEGEN} && go run . nodejs ../../../sdk/nodejs ${SCHEMA_PATH} + bin/${CODEGEN} nodejs sdk/nodejs ${SCHEMA_PATH} # HACKHACK: work around https://github.com/pulumi/pulumi/issues/7979: find sdk/nodejs -name "*.ts" -exec sed -i.bak \ 's/pulumiKubernetes\.types\.input\.\([a-zA-Z0-9]*\)\.\([a-zA-Z0-9]*\)\.\([a-zA-Z]*\)Args/pulumiKubernetes.types.input.\1.\2.\3/g' \ @@ -75,7 +90,9 @@ build_nodejs_sdk:: gen_nodejs_sdk sed -i.bak -e "s/\$${VERSION}/$(VERSION)/g" ./bin/package.json && \ rm ./bin/package.json.bak -install_nodejs_sdk:: build_nodejs_sdk +generate_nodejs: gen_nodejs_sdk # Required by CI +build_nodejs: build_nodejs_sdk # Required by CI +install_nodejs_sdk:: # Required by CI yarn unlink ${PACK} || true yarn link --cwd ${WORKING_DIR}/sdk/nodejs/bin @@ -84,7 +101,7 @@ install_nodejs_sdk:: build_nodejs_sdk gen_python_sdk:: rm -rf sdk/python - cd provider/cmd/${CODEGEN} && go run . python ../../../sdk/python ${SCHEMA_PATH} + bin/${CODEGEN} python sdk/python ${SCHEMA_PATH} cp ${WORKING_DIR}/README.md sdk/python build_python_sdk:: PYPI_VERSION := $(shell pulumictl get version --language python) @@ -96,5 +113,14 @@ build_python_sdk:: gen_python_sdk rm ./bin/setup.py.bak && \ cd ./bin && python3 setup.py build sdist -## Empty build target for Go -build_go_sdk:: +generate_python: build_python_sdk # Required by CI +build_python: # Required by CI +install_python_sdk:: # Required by CI + +# Java SDK + +generate_java: # Required by CI + pulumi package gen-sdk ${SCHEMA_PATH} -o sdk --language java + cp ${WORKING_DIR}/README.md sdk/java +build_java: # Required by CI +install_java_sdk: # Required by CI diff --git a/examples/go.mod b/examples/go.mod new file mode 100644 index 0000000..0d25f74 --- /dev/null +++ b/examples/go.mod @@ -0,0 +1,3 @@ +module github.com/pulumi/pulumi-kubernetes-cert-manager/examples + +go 1.22.1 diff --git a/examples/noop_test.go b/examples/noop_test.go new file mode 100644 index 0000000..56e5404 --- /dev/null +++ b/examples/noop_test.go @@ -0,0 +1 @@ +package test diff --git a/provider/cmd/pulumi-gen-kubernetes-cert-manager/main.go b/provider/cmd/pulumi-gen-kubernetes-cert-manager/main.go index ddc7182..0dc93ff 100644 --- a/provider/cmd/pulumi-gen-kubernetes-cert-manager/main.go +++ b/provider/cmd/pulumi-gen-kubernetes-cert-manager/main.go @@ -17,7 +17,6 @@ package main import ( "encoding/json" "fmt" - "io/ioutil" "os" "path/filepath" @@ -59,7 +58,7 @@ func emitSDK(language, outdir, schemaPath string) error { case "go": generator = func() (map[string][]byte, error) { return gogen.GeneratePackage(tool, pkg) } case "nodejs": - generator = func() (map[string][]byte, error) { return nodejsgen.GeneratePackage(tool, pkg, extraFiles) } + generator = func() (map[string][]byte, error) { return nodejsgen.GeneratePackage(tool, pkg, extraFiles, nil) } case "python": generator = func() (map[string][]byte, error) { return pygen.GeneratePackage(tool, pkg, extraFiles) } default: @@ -81,7 +80,7 @@ func emitSDK(language, outdir, schemaPath string) error { } func readSchema(schemaPath string) (*schema.Package, error) { - schemaBytes, err := ioutil.ReadFile(schemaPath) + schemaBytes, err := os.ReadFile(schemaPath) if err != nil { return nil, errors.Wrap(err, "reading schema") } @@ -103,7 +102,7 @@ func emitFile(rootDir, filename string, contents []byte) error { if err := os.MkdirAll(filepath.Dir(outPath), 0755); err != nil { return err } - if err := ioutil.WriteFile(outPath, contents, 0600); err != nil { + if err := os.WriteFile(outPath, contents, 0600); err != nil { return err } return nil diff --git a/provider/cmd/pulumi-resource-kubernetes-cert-manager/generate.go b/provider/cmd/pulumi-resource-kubernetes-cert-manager/generate.go deleted file mode 100644 index 93a196c..0000000 --- a/provider/cmd/pulumi-resource-kubernetes-cert-manager/generate.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2016-2021, Pulumi Corporation. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// +build ignore - -package main - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "log" - "os" - - "github.com/pulumi/pulumi/pkg/v3/codegen/schema" -) - -func main() { - version, found := os.LookupEnv("VERSION") - if !found { - log.Fatal("version not found") - } - - schemaPath, found := os.LookupEnv("SCHEMA") - if !found { - log.Fatal("schema not found") - } - - schemaContents, err := ioutil.ReadFile(schemaPath) - if err != nil { - log.Fatal(err) - } - - var packageSpec schema.PackageSpec - err = json.Unmarshal(schemaContents, &packageSpec) - if err != nil { - log.Fatalf("cannot deserialize schema: %v", err) - } - - packageSpec.Version = version - versionedContents, err := json.Marshal(packageSpec) - if err != nil { - log.Fatalf("cannot reserialize schema: %v", err) - } - - err = ioutil.WriteFile("./schema.go", []byte(fmt.Sprintf(`package main -var pulumiSchema = %#v -`, versionedContents)), 0600) - if err != nil { - log.Fatal(err) - } -} diff --git a/provider/cmd/pulumi-resource-kubernetes-cert-manager/main.go b/provider/cmd/pulumi-resource-kubernetes-cert-manager/main.go index 103f459..f2b966c 100644 --- a/provider/cmd/pulumi-resource-kubernetes-cert-manager/main.go +++ b/provider/cmd/pulumi-resource-kubernetes-cert-manager/main.go @@ -12,15 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:generate go run ./generate.go - package main import ( + _ "embed" + "github.com/pulumi/pulumi-kubernetes-cert-manager/pkg/provider" "github.com/pulumi/pulumi-kubernetes-cert-manager/pkg/version" ) +//go:embed schema.json +var pulumiSchema []byte + func main() { provider.Serve(version.Version, pulumiSchema) } diff --git a/provider/cmd/pulumi-resource-kubernetes-cert-manager/schema.json b/provider/cmd/pulumi-resource-kubernetes-cert-manager/schema.json index 537d08e..df648ad 100644 --- a/provider/cmd/pulumi-resource-kubernetes-cert-manager/schema.json +++ b/provider/cmd/pulumi-resource-kubernetes-cert-manager/schema.json @@ -1,6 +1,8 @@ { "name": "kubernetes-cert-manager", "displayName": "Kubernetes Cert Manager", + "description": "Strongly-typed Cert Manager installation", + "repository": "https://github.com/pulumi/pulumi-kubernetes-cert-manager", "keywords": [ "pulumi", "kubernetes", @@ -8,6 +10,8 @@ "kind/component", "category/infrastructure" ], + "homepage": "https://pulumi.io", + "license": "Apache-2.0", "publisher": "Pulumi", "resources": { "kubernetes-cert-manager:index:CertManager": { @@ -884,19 +888,30 @@ }, "packageReferences": { "Pulumi": "3.*", - "Pulumi.Kubernetes": "3.*" + "Pulumi.Kubernetes": "4.*" } }, "go": { "generateResourceContainerTypes": true, "importBasePath": "github.com/pulumi/pulumi-kubernetes-cert-manager/sdk/go/kubernetes-cert-manager" }, + "java": { + "basePackage": "", + "buildFiles": "gradle", + "dependencies": { + "com.google.code.findbugs:jsr305": "3.0.2", + "com.google.code.gson:gson": "2.8.9", + "com.pulumi:pulumi": "0.9.9" + }, + "gradleNexusPublishPluginVersion": "1.1.0", + "gradleTest": "" + }, "nodejs": { "dependencies": { - "@pulumi/kubernetes": "^3.7.1" + "@pulumi/kubernetes": "^4.0.0" }, "devDependencies": { - "typescript": "^3.7.0" + "typescript": "^4.3.5" } }, "python": { diff --git a/provider/go.mod b/provider/go.mod index dda97f3..81f622f 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -8,31 +8,26 @@ require ( github.com/pkg/errors v0.9.1 github.com/pulumi/pulumi-go-helmbase v0.0.15-0.20240130224250-9aab5822f6ea github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.7.1 - github.com/pulumi/pulumi/pkg/v3 v3.103.1 - github.com/pulumi/pulumi/sdk/v3 v3.103.1 + github.com/pulumi/pulumi/pkg/v3 v3.113.0 + github.com/pulumi/pulumi/sdk/v3 v3.113.0 ) require ( - cloud.google.com/go v0.110.4 // indirect - cloud.google.com/go/compute v1.20.1 // indirect + cloud.google.com/go v0.112.1 // indirect + cloud.google.com/go/compute v1.25.0 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v1.1.1 // indirect - cloud.google.com/go/kms v1.12.1 // indirect - cloud.google.com/go/logging v1.7.0 // indirect - cloud.google.com/go/longrunning v0.5.1 // indirect - cloud.google.com/go/storage v1.30.1 // indirect + cloud.google.com/go/iam v1.1.6 // indirect + cloud.google.com/go/kms v1.15.7 // indirect + cloud.google.com/go/logging v1.9.0 // indirect + cloud.google.com/go/longrunning v0.5.5 // indirect + cloud.google.com/go/storage v1.39.1 // indirect dario.cat/mergo v1.0.0 // indirect - github.com/Azure/azure-sdk-for-go v66.0.0+incompatible // indirect - github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest v0.11.28 // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.21 // indirect - github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 // indirect - github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect - github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect - github.com/Azure/go-autorest/autorest/to v0.4.0 // indirect - github.com/Azure/go-autorest/autorest/validation v0.3.1 // indirect - github.com/Azure/go-autorest/logger v0.2.1 // indirect - github.com/Azure/go-autorest/tracing v0.6.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 // indirect + github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 // indirect + github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 // indirect + github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 // indirect + github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect github.com/BurntSushi/toml v1.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect @@ -42,19 +37,21 @@ require ( github.com/armon/go-metrics v0.4.0 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go v1.44.298 // indirect - github.com/aws/aws-sdk-go-v2 v1.17.3 // indirect - github.com/aws/aws-sdk-go-v2/config v1.15.15 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.12.10 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.9 // indirect - github.com/aws/aws-sdk-go-v2/service/kms v1.18.1 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.11.13 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.16.10 // indirect - github.com/aws/smithy-go v1.13.5 // indirect + github.com/aws/aws-sdk-go v1.50.36 // indirect + github.com/aws/aws-sdk-go-v2 v1.26.1 // indirect + github.com/aws/aws-sdk-go-v2/config v1.27.11 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect + github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect + github.com/aws/smithy-go v1.20.2 // indirect github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/blang/semver v3.5.1+incompatible // indirect github.com/cenkalti/backoff/v3 v3.2.2 // indirect @@ -67,29 +64,30 @@ require ( github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/deckarep/golang-set/v2 v2.5.0 // indirect - github.com/dimchansky/utfbom v1.1.1 // indirect github.com/djherbis/times v1.5.0 // indirect github.com/edsrzf/mmap-go v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/fatih/color v1.13.0 // indirect + github.com/fatih/color v1.15.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect github.com/gedex/inflector v0.0.0-20170307190818-16278e9db813 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.5.0 // indirect github.com/go-git/go-git/v5 v5.11.0 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.4.2 // indirect - github.com/golang/glog v1.1.0 // indirect + github.com/golang-jwt/jwt/v5 v5.2.1 // indirect + github.com/golang/glog v1.2.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/go-cmp v0.6.0 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/s2a-go v0.1.4 // indirect - github.com/google/uuid v1.3.0 // indirect - github.com/google/wire v0.5.0 // indirect - github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.11.0 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/google/wire v0.6.0 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + github.com/googleapis/gax-go/v2 v2.12.2 // indirect github.com/gorilla/mux v1.8.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -118,8 +116,9 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-colorable v0.1.12 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect @@ -144,6 +143,7 @@ require ( github.com/pgavlin/goldmark v1.1.33-0.20200616210433-b5eb04559386 // indirect github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/term v1.1.0 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect @@ -158,7 +158,7 @@ require ( github.com/sergi/go-diff v1.3.1 // indirect github.com/skeema/knownhosts v1.2.1 // indirect github.com/spf13/afero v1.9.5 // indirect - github.com/spf13/cobra v1.7.0 // indirect + github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/stretchr/testify v1.8.4 // indirect github.com/texttheater/golang-levenshtein v1.0.1 // indirect @@ -171,27 +171,32 @@ require ( github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/zclconf/go-cty v1.13.2 // indirect go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect + go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/atomic v1.9.0 // indirect - gocloud.dev v0.27.0 // indirect + gocloud.dev v0.37.0 // indirect gocloud.dev/secrets/hashivault v0.27.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.21.0 // indirect golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sync v0.5.0 // indirect - golang.org/x/sys v0.15.0 // indirect - golang.org/x/term v0.15.0 // indirect + golang.org/x/net v0.22.0 // indirect + golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.18.0 // indirect + golang.org/x/term v0.18.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 // indirect - golang.org/x/tools v0.15.0 // indirect - golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect - google.golang.org/api v0.126.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130 // indirect - google.golang.org/grpc v1.57.1 // indirect + golang.org/x/time v0.5.0 // indirect + golang.org/x/tools v0.17.0 // indirect + golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect + google.golang.org/api v0.169.0 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/grpc v1.62.1 // indirect google.golang.org/protobuf v1.33.0 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect diff --git a/provider/go.sum b/provider/go.sum index f674bd0..f0a1f6d 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -36,8 +36,8 @@ cloud.google.com/go v0.100.2/go.mod h1:4Xra9TjzAeYHrl5+oeLlzbM2k3mjVhZh4UqTZ//w9 cloud.google.com/go v0.102.0/go.mod h1:oWcCzKlqJ5zgHQt9YsaeTY9KzIvjyy0ArmiBUgpQ+nc= cloud.google.com/go v0.102.1/go.mod h1:XZ77E9qnTEnrgEOvr4xzfdX5TRo7fB4T2F4O6+34hIU= cloud.google.com/go v0.103.0/go.mod h1:vwLx1nqLrzLX/fpwSMOXmFIqBOyHsvHbnAdbGSJ+mKk= -cloud.google.com/go v0.110.4 h1:1JYyxKMN9hd5dR2MYTPWkGUgcoxVVhg0LKNKEo0qvmk= -cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= +cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= @@ -50,8 +50,8 @@ cloud.google.com/go/compute v1.5.0/go.mod h1:9SMHyhJlzhlkJqrPAc839t2BZFTSk6Jdj6m cloud.google.com/go/compute v1.6.0/go.mod h1:T29tfhtVbq1wvAPo0E3+7vhgmkOYeXjhFvz/FMzPu0s= cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= -cloud.google.com/go/compute v1.20.1 h1:6aKEtlUiwEpJzM001l0yFkpXmUVXaN8W+fbkb2AZNbg= -cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.25.0 h1:H1/4SqSUhjPFE7L5ddzHOfY2bCAvjwNRZPNl6Ni5oYU= +cloud.google.com/go/compute v1.25.0/go.mod h1:GR7F0ZPZH8EhChlMo9FkLd7eUTwEymjqQagxzilIxIE= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= @@ -60,15 +60,15 @@ cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqCl cloud.google.com/go/firestore v1.6.1/go.mod h1:asNXNOzBdyVQmEU+ggO8UPodTkEVFW5Qx+rwHnAz+EY= cloud.google.com/go/iam v0.1.0/go.mod h1:vcUNEa0pEm0qRVpmWepWaFMIAI8/hjB9mO8rNCJtF6c= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= -cloud.google.com/go/iam v1.1.1 h1:lW7fzj15aVIXYHREOqjRBV9PsH0Z6u8Y46a1YGvQP4Y= -cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.6 h1:bEa06k05IO4f4uJonbB5iAgKTPpABy1ayxaIZV/GHVc= +cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= cloud.google.com/go/kms v1.4.0/go.mod h1:fajBHndQ+6ubNw6Ss2sSd+SWvjL26RNo/dr7uxsnnOA= -cloud.google.com/go/kms v1.12.1 h1:xZmZuwy2cwzsocmKDOPu4BL7umg8QXagQx6fKVmf45U= -cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= -cloud.google.com/go/logging v1.7.0 h1:CJYxlNNNNAMkHp9em/YEXcfJg+rPDg7YfwoRpMU+t5I= -cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= -cloud.google.com/go/longrunning v0.5.1 h1:Fr7TXftcqTudoyRJa113hyaqlGdiBQkp0Gq7tErFDWI= -cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= +cloud.google.com/go/kms v1.15.7 h1:7caV9K3yIxvlQPAcaFffhlT7d1qpxjB1wHBtjWa13SM= +cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/logging v1.9.0 h1:iEIOXFO9EmSiTjDmfpbRjOxECO7R8C7b8IXUGOj7xZw= +cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= +cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= +cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= cloud.google.com/go/monitoring v1.1.0/go.mod h1:L81pzz7HKn14QCMaCs6NTQkdBnE87TElyanS95vIcl4= cloud.google.com/go/monitoring v1.5.0/go.mod h1:/o9y8NYX5j91JjD/JvGLYbi86kL11OjyJXq2XziLJu4= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= @@ -86,8 +86,8 @@ cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3f cloud.google.com/go/storage v1.22.1/go.mod h1:S8N1cAStu7BOeFfE8KAQzmyyLkK8p/vmRq6kuBTW58Y= cloud.google.com/go/storage v1.23.0/go.mod h1:vOEEDNFnciUMhBeT6hsJIn3ieU5cFRmzeLgDvXzfIXc= cloud.google.com/go/storage v1.24.0/go.mod h1:3xrJEFMXBsQLgxwThyjuD3aYlroL0TMRec1ypGUQ0KE= -cloud.google.com/go/storage v1.30.1 h1:uOdMxAs8HExqBlnLtnQyP0YkvbiDpdGShGKtx6U/oNM= -cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= +cloud.google.com/go/storage v1.39.1 h1:MvraqHKhogCOTXTlct/9C3K3+Uy2jBmFYb3/Sp6dVtY= +cloud.google.com/go/storage v1.39.1/go.mod h1:xK6xZmxZmo+fyP7+DEF6FhNc24/JAe95OLyOHCXFH1o= cloud.google.com/go/trace v1.0.0/go.mod h1:4iErSByzxkyHWzzlAj63/Gmjz0NH1ASqhJguHpGcr6A= cloud.google.com/go/trace v1.2.0/go.mod h1:Wc8y/uYyOhPy12KEnXG9XGrvfMz5F5SrYecQlbW1rwM= code.cloudfoundry.org/clock v0.0.0-20180518195852-02e53af36e6c/go.mod h1:QD9Lzhd/ux6eNQVUDVRJX/RKTigpewimNYBi7ivZKY8= @@ -102,21 +102,20 @@ github.com/Azure/azure-amqp-common-go/v3 v3.2.3/go.mod h1:7rPmbSfszeovxGfc5fSAXE github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v63.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v65.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v66.0.0+incompatible h1:bmmC38SlE8/E81nNADlgmVGurPWMHDX2YNXVQMrBpEE= github.com/Azure/azure-sdk-for-go v66.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go/sdk/azcore v0.19.0/go.mod h1:h6H6c8enJmmocHUbLiiGY6sx7f9i+X3m1CHdd5c6Rdw= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.0.0/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.1.1/go.mod h1:uGG2W01BaETf0Ozp+QxxKJdMBNRWPdstHG0Fmdwn1/U= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0 h1:rTnT/Jrcm+figWlYz4Ixzt0SJVR2cMC8lvZcimipiEY= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.4.0/go.mod h1:ON4tFdPTwRcgWEaVDrN3584Ef+b7GgSJaXxe5fW9t4M= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0 h1:n1DH8TPV4qqPTje2RcUBYwtrTWlabVp4n46+74X2pn4= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.10.0/go.mod h1:HDcZnuGbiyppErN6lB+idp4CKhjbc8gwjto6OPpyggM= github.com/Azure/azure-sdk-for-go/sdk/azidentity v0.11.0/go.mod h1:HcM1YX14R7CJcghJGOYCgdezslRSVzqwLf/q+4Y2r/0= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.0.0/go.mod h1:+6sju8gk8FRmSajX3Oz4G5Gm7P+mbqE9FVaXXFYTkCM= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0 h1:QkAcEIAKbNL4KoFr4SathZPhDhF4mVwpBMFlYjyAqy8= -github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.1.0/go.mod h1:bhXu1AjYL+wutSL/kpSq6s7733q2Rb0yuot9Zgfqa/0= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1 h1:sO0/P7g68FrryJzljemN+6GTssUXdANk6aJ7T1ZxnsQ= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.5.1/go.mod h1:h8hyGFDsU5HMivxiS2iYFZsgDbU9OnnJ163x5UGVKYo= github.com/Azure/azure-sdk-for-go/sdk/internal v0.7.0/go.mod h1:yqy467j36fJxcRV2TzfVZ1pCb5vxm4BtZPUdYWe/Xo8= github.com/Azure/azure-sdk-for-go/sdk/internal v1.0.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.2.0 h1:leh5DwKv6Ihwi+h60uHtn6UWAxBbZ0q8DwQVMzf61zw= -github.com/Azure/azure-sdk-for-go/sdk/internal v1.2.0/go.mod h1:eWRD7oawr1Mu1sLCawqVc0CUiF43ia3qQMxLscsKQ9w= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2 h1:LqbJ/WzJUwBf8UiaSzgX7aMclParm9/5Vgp+TY51uBQ= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.2/go.mod h1:yInRyqWXAuaPrgI7p70+lDDgh3mlBohis29jGMISnmc= github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0 h1:m/sWOGCREuSBqg2htVQTBY8nOZpyajYztF0vUvSZTuM= github.com/Azure/azure-sdk-for-go/sdk/keyvault/azkeys v0.10.0/go.mod h1:Pu5Zksi2KrU7LPbZbNINx6fuVrUp/ffvpxdDj+i8LeE= github.com/Azure/azure-sdk-for-go/sdk/keyvault/internal v0.7.1 h1:FbH3BbSb4bvGluTesZZ+ttN/MDsnMmQP36OSnDuSXqw= @@ -129,45 +128,34 @@ github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= github.com/Azure/go-autorest/autorest v0.11.25/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U= github.com/Azure/go-autorest/autorest v0.11.27/go.mod h1:7l8ybrIdUmGqZMTD0sRtAr8NvbHjfofbf8RSP2q7w7U= -github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= github.com/Azure/go-autorest/autorest/adal v0.9.20/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= -github.com/Azure/go-autorest/autorest/adal v0.9.21 h1:jjQnVFXPfekaqb8vIsv2G1lxshoW+oGv4MDlhRtnYZk= github.com/Azure/go-autorest/autorest/adal v0.9.21/go.mod h1:zua7mBUaCc5YnSLKYgGJR/w5ePdMDA6H56upLsHzA9U= -github.com/Azure/go-autorest/autorest/azure/auth v0.5.11 h1:P6bYXFoao05z5uhOQzbC3Qd8JqF3jUoocoTeIxkp2cA= github.com/Azure/go-autorest/autorest/azure/auth v0.5.11/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= -github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 h1:w77/uPk80ZET2F+AfQExZyEWtn+0Rk/uw17m9fv5Ajc= github.com/Azure/go-autorest/autorest/azure/cli v0.4.6/go.mod h1:piCfgPho7BiIDdEQ1+g4VmKyD5y+p/XtSNqE6Hc4QD0= -github.com/Azure/go-autorest/autorest/date v0.3.0 h1:7gUk1U5M/CQbp9WoqinNzJar+8KY+LPI6wiWrP/myHw= github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= -github.com/Azure/go-autorest/autorest/mocks v0.4.2 h1:PGN4EDXnuQbojHbU0UWoNvmu9AGVwYHG9/fkDYhtAfw= github.com/Azure/go-autorest/autorest/mocks v0.4.2/go.mod h1:Vy7OitM9Kei0i1Oj+LvyAWMXJHeKH1MVlzFugfVrmyU= -github.com/Azure/go-autorest/autorest/to v0.4.0 h1:oXVqrxakqqV1UZdSazDOPOLvOIz+XA683u8EctwboHk= github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= -github.com/Azure/go-autorest/autorest/validation v0.3.1 h1:AgyqjAd94fwNAoTjl/WQXg4VvFeRFpO+UhNyRXqF1ac= github.com/Azure/go-autorest/autorest/validation v0.3.1/go.mod h1:yhLgjC0Wda5DYXl6JAsWyUe4KVNffhoDhG0zVzUMo3E= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+ZtXWSmf4Tg= github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= -github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= github.com/AzureAD/microsoft-authentication-library-for-go v0.4.0/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= -github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1 h1:BWe8a+f/t+7KY7zH2mqygeUD0t8hNFXe08p1Pb3/jKE= -github.com/AzureAD/microsoft-authentication-library-for-go v0.5.1/go.mod h1:Vt9sXTKwMyGcOxSmLDMnGPgqsUg7m8pe215qMLrDXw4= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 h1:XHOnouVk1mxXfQidrMEnLlPk9UMeRtyBTnEFtxkV0kU= +github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= @@ -263,57 +251,74 @@ github.com/aws/aws-sdk-go v1.43.11/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4 github.com/aws/aws-sdk-go v1.43.31/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.68/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= -github.com/aws/aws-sdk-go v1.44.298 h1:5qTxdubgV7PptZJmp/2qDwD2JL187ePL7VOxsSh1i3g= -github.com/aws/aws-sdk-go v1.44.298/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.50.36 h1:PjWXHwZPuTLMR1NIb8nEjLucZBMzmf84TLoLbD8BZqk= +github.com/aws/aws-sdk-go v1.50.36/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.16.8/go.mod h1:6CpKuLXg2w7If3ABZCl/qZ6rEgwtjZTn4eAf4RcEyuw= -github.com/aws/aws-sdk-go-v2 v1.17.3 h1:shN7NlnVzvDUgPQ+1rLMSxY8OWRNDRYtiqe0p/PgrhY= -github.com/aws/aws-sdk-go-v2 v1.17.3/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.3 h1:S/ZBwevQkr7gv5YxONYpGQxlMFFYSRfz3RMcjsC9Qhk= +github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA= +github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.3/go.mod h1:gNsR5CaXKmQSSzrmGxmwmct/r+ZBfbxorAuXYsj/M5Y= -github.com/aws/aws-sdk-go-v2/config v1.15.15 h1:yBV+J7Au5KZwOIrIYhYkTGJbifZPCkAnCFSvGsF3ui8= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2 h1:x6xsQXGSmW6frevwDA+vi/wqhp1ct18mVXYN08/93to= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.2/go.mod h1:lPprDr1e6cJdyYeGXnRaJoP4Md+cDBvi2eOj00BlGmg= github.com/aws/aws-sdk-go-v2/config v1.15.15/go.mod h1:A1Lzyy/o21I5/s2FbyX5AevQfSVXpvvIDCoVFD0BC4E= -github.com/aws/aws-sdk-go-v2/credentials v1.12.10 h1:7gGcMQePejwiKoDWjB9cWnpfVdnz/e5JwJFuT6OrroI= +github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA= +github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE= github.com/aws/aws-sdk-go-v2/credentials v1.12.10/go.mod h1:g5eIM5XRs/OzIIK81QMBl+dAuDyoLN0VYaLP+tBqEOk= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9 h1:hz8tc+OW17YqxyFFPSkvfSikbqWcyyHRyPVSTzC0+aI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs= +github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo= github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.9/go.mod h1:KDCCm4ONIdHtUloDcFvK2+vshZvx4Zmj7UMDfusuz5s= -github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21 h1:bpiKFJ9aC0xTVpygSRRRL/YHC1JZ+pHQHENATHuoiwo= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg= github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.21/go.mod h1:iIYPrQ2rYfZiB/iADYlhj9HHZ9TTi6PqKQPAqygohbE= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15 h1:7Zwtt/lP3KNRkeZre7soMELMGNoBrutx8nobg1jKWmo= +github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.15/go.mod h1:436h2adoHb57yd+8W+gYPrrA9U/R/SuAuOO42Ushzhw= github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.15/go.mod h1:pWrr2OoHlT7M/Pd2y4HV3gJyPb3qj5qMmnPkKSNPYK4= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 h1:I3cakv2Uy1vNmmhRQmFptYDxOvBnwCdNwyw63N0RaRU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27/go.mod h1:a1/UpzeyBBerajpnP5nGZa9mGzsBn5cOKxm6NWQsvoI= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I= github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.9/go.mod h1:08tUpeSGN33QKSO7fwxXczNfiwCpbj+GxK6XKwqWVv0= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 h1:5NbbMrIzmUn/TXFqAle6mgrH5m9cOvMLRGL7pnG8tRE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21/go.mod h1:+Gxn8jYn5k9ebfHEqlhrMirFjSW0v0C9fI+KN5vk2kE= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16 h1:f0ySVcmQhwmzn7zQozd8wBM3yuGBfzdpsOaKQ0/Epzw= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc= github.com/aws/aws-sdk-go-v2/internal/ini v1.3.16/go.mod h1:CYmI+7x03jjJih8kBEEFKRQc40UjUokT0k7GbvrhhTc= -github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.6 h1:3L8pcjvgaSOs0zzZcMKzxDSkYKEpwJ2dNVDdxm68jAY= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= +github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.6/go.mod h1:O7Oc4peGZDEKlddivslfYFvAbgzvl/GH3J8j3JIGBXc= -github.com/aws/aws-sdk-go-v2/service/iam v1.19.0 h1:9vCynoqC+dgxZKrsjvAniyIopsv3RZFsZ6wkQ+yxtj8= -github.com/aws/aws-sdk-go-v2/service/iam v1.19.0/go.mod h1:OyAuvpFeSVNppcSsp1hFOVQcaTRc1LE24YIR7pMbbAA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3 h1:4n4KCtv5SUoT5Er5XV41huuzrCqepxlW3SDI9qHQebc= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5 h1:81KE7vaZzrl7yHBYHVEzYB8sypz11NMOZ40YlWvPxsU= +github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.5/go.mod h1:LIt2rg7Mcgn09Ygbdh/RdIm0rQ+3BNkbP1gyVMFtRK0= +github.com/aws/aws-sdk-go-v2/service/iam v1.31.4 h1:eVm30ZIDv//r6Aogat9I88b5YX1xASSLcEDqHYRPVl0= +github.com/aws/aws-sdk-go-v2/service/iam v1.31.4/go.mod h1:aXWImQV0uTW35LM0A/T4wEg6R1/ReXUu4SM6/lUHYK0= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.3/go.mod h1:gkb2qADY+OHaGLKNTYxMaQNacfeyQpZ4csDTQMeFmcw= -github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.10 h1:7LJcuRalaLw+GYQTMGmVUl4opg2HrDZkvn/L3KvIQfw= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.10/go.mod h1:Qks+dxK3O+Z2deAhNo6cJ8ls1bam3tUGUAcgxQP1c70= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.9 h1:sHfDuhbOuuWSIAEDd3pma6p0JgUcR2iePxtCE8gfCxQ= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7 h1:ZMeFZ5yk+Ek+jNr1+uwCd2tG89t6oTS5yVWpa6yy2es= +github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.7/go.mod h1:mxV05U+4JiHqIpGqqYXOHLPKUC6bDXC44bsUhNjOEwY= github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.9/go.mod h1:yQowTpvdZkFVuHrLBXmczat4W+WJKg/PafBZnGBLga0= -github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.9 h1:sJdKvydGYDML9LTFcp6qq6Z5fIjN0Rdq2Gvw1hUg8tc= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.13.9/go.mod h1:Rc5+wn2k8gFSi3V1Ch4mhxOzjMh+bYSXVFfVaqowQOY= -github.com/aws/aws-sdk-go-v2/service/kms v1.18.1 h1:y07kzPdcjuuyDVYWf1CCsQQ6kcAWMbFy+yIJ71xQBS0= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5 h1:f9RyWNtS8oH7cZlbn+/JNPpjUk5+5fLd5lM9M0i49Ys= +github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.5/go.mod h1:h5CoMZV2VF297/VLhRhO1WF+XYWOzXo+4HsObA4HjBQ= github.com/aws/aws-sdk-go-v2/service/kms v1.18.1/go.mod h1:4PZMUkc9rXHWGVB5J9vKaZy3D7Nai79ORworQ3ASMiM= -github.com/aws/aws-sdk-go-v2/service/s3 v1.27.2 h1:NvzGue25jKnuAsh6yQ+TZ4ResMcnp49AWgWGm2L4b5o= +github.com/aws/aws-sdk-go-v2/service/kms v1.30.1 h1:SBn4I0fJXF9FYOVRSVMWuhvEKoAHDikjGpS3wlmw5DE= +github.com/aws/aws-sdk-go-v2/service/kms v1.30.1/go.mod h1:2snWQJQUKsbN66vAawJuOGX7dr37pfOq9hb0tZDGIqQ= github.com/aws/aws-sdk-go-v2/service/s3 v1.27.2/go.mod h1:u+566cosFI+d+motIz3USXEh6sN8Nq4GrNXSg2RXVMo= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1 h1:6cnno47Me9bRykw9AEv9zkXE+5or7jz8TsskTTccbgc= +github.com/aws/aws-sdk-go-v2/service/s3 v1.53.1/go.mod h1:qmdkIIAC+GCLASF7R2whgNrJADz0QZPX+Seiw/i4S3o= github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.15.14/go.mod h1:xakbH8KMsQQKqzX87uyyzTHshc/0/Df8bsTneTS5pFU= github.com/aws/aws-sdk-go-v2/service/sns v1.17.10/go.mod h1:uITsRNVMeCB3MkWpXxXw0eDz8pW4TYLzj+eyQtbhSxM= github.com/aws/aws-sdk-go-v2/service/sqs v1.19.1/go.mod h1:A94o564Gj+Yn+7QO1eLFeI7UVv3riy/YBFOfICVqFvU= github.com/aws/aws-sdk-go-v2/service/ssm v1.27.6/go.mod h1:fiFzQgj4xNOg4/wqmAiPvzgDMXPD+cUEplX/CYn+0j0= -github.com/aws/aws-sdk-go-v2/service/sso v1.11.13 h1:DQpf+al+aWozOEmVEdml67qkVZ6vdtGUi71BZZWw40k= github.com/aws/aws-sdk-go-v2/service/sso v1.11.13/go.mod h1:d7ptRksDDgvXaUvxyHZ9SYh+iMDymm94JbVcgvSYSzU= -github.com/aws/aws-sdk-go-v2/service/sts v1.16.10 h1:7tquJrhjYz2EsCBvA9VTl+sBAAh1bv7h/sGASdZOGGo= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w= +github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak= github.com/aws/aws-sdk-go-v2/service/sts v1.16.10/go.mod h1:cftkHYN6tCDNfkSasAmclSfl4l7cySoay8vz7p/ce0E= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU= +github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw= github.com/aws/smithy-go v1.12.0/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= -github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= +github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q= +github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E= github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= @@ -516,7 +521,7 @@ github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfc github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= @@ -543,12 +548,12 @@ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8 github.com/dgryski/go-sip13 v0.0.0-20200911182023-62edffca9245/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/digitalocean/godo v1.78.0/go.mod h1:GBmu8MkjZmNARE7IXRPmkbbnocNN8+uBm0xbEVw2LCs= github.com/digitalocean/godo v1.81.0/go.mod h1:BPCqvwbjbGqxuUnIKB4EvS/AX7IDnNmt5fwvIkWo+ew= -github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/djherbis/times v1.5.0 h1:79myA211VwPhFTqUk8xehWrsEO+zcIZj0zT8mXPVARU= github.com/djherbis/times v1.5.0/go.mod h1:5q7FDLvbNg1L/KaBmPcWlVR9NmoKo3+ucqUA3ijQhA0= github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= github.com/dnaeon/go-vcr v1.1.0/go.mod h1:M7tiix8f0r6mKKJ3Yq/kqU1OYf3MnfmBWVbPx/yU9ko= +github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI= github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ= github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= @@ -604,13 +609,16 @@ github.com/evanphx/json-patch/v5 v5.5.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2Vvl github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= -github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= +github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= @@ -668,7 +676,10 @@ github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/analysis v0.21.2/go.mod h1:HZwRk4RRisyG8vx2Oe6aqeSQcoxRp47Xkp3+K6q+LdY= github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= @@ -762,18 +773,18 @@ github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.2 h1:rcc4lwaZgFMCZ5jxF9ABolDcIHdBytAFgqFPbSJQAYs= github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk= +github.com/golang-jwt/jwt/v5 v5.2.1/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= -github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE= -github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= +github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -807,8 +818,8 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= -github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -840,8 +851,9 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/go-replayers/grpcreplay v1.1.0 h1:S5+I3zYyZ+GQz68OfbURDdt/+cSMqCK1wrvNx7WBzTE= github.com/google/go-replayers/grpcreplay v1.1.0/go.mod h1:qzAvJ8/wi57zq7gWqaE6AwLM6miiXUQwP1S+I9icmhk= -github.com/google/go-replayers/httpreplay v1.1.1 h1:H91sIMlt1NZzN7R+/ASswyouLJfW0WLW7fhyUFvDEkY= github.com/google/go-replayers/httpreplay v1.1.1/go.mod h1:gN9GeLIs7l6NUoVaSSnv2RiqK1NiwAmD0MrKeC9IIks= +github.com/google/go-replayers/httpreplay v1.2.0 h1:VM1wEyyjaoU53BwrOnaf9VhAyQQEEioJvFYxYcLRKzk= +github.com/google/go-replayers/httpreplay v1.2.0/go.mod h1:WahEFFZZ7a1P4VM1qEeHy+tME4bwyqPcwWbNlUI1Mcg= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -872,21 +884,24 @@ github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20220318212150-b2ab0324ddda/go.mod h1:KgnwoLYCZ8IQu3XUZ8Nc/bM9CCZFOyjUNOSygVozoDg= github.com/google/pprof v0.0.0-20220608213341-c488b8fa1db3/go.mod h1:gSuNB+gJaOiQKLEZ+q+PK9Mq3SOzhRcw2GsGS/FhYDk= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/s2a-go v0.1.4 h1:1kZ/sQM3srePvKs3tXAvQzo66XfcReoqFpIpIccE7Oc= -github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= github.com/google/subcommands v1.0.1/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/google/subcommands v1.2.0/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/wire v0.5.0 h1:I7ELFeVBr3yfPIcc8+MWvrjk+3VjbcSzoXm3JVa+jD8= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/wire v0.5.0/go.mod h1:ngWDr9Qvq3yZA10YrxfyGELY/AFWGVpy9c1LTRi1EoU= +github.com/google/wire v0.6.0 h1:HBkoIh4BdSxoyo9PveV8giw7ZsaBOvzWKfcg/6MrVwI= +github.com/google/wire v0.6.0/go.mod h1:F4QhpQ9EDIdJ1Mbop/NZBRB+5yrR6qg3BnctaoUk6NA= github.com/googleapis/enterprise-certificate-proxy v0.0.0-20220520183353-fd19c99a87aa/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= github.com/googleapis/enterprise-certificate-proxy v0.1.0/go.mod h1:17drOmN3MwGY7t0e+Ei9b45FFGA3fBs3x36SsCg1hq8= -github.com/googleapis/enterprise-certificate-proxy v0.2.3 h1:yk9/cqRKtT9wXZSsRH9aurXEpJX+U6FLtpYTdC3R06k= -github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -894,8 +909,8 @@ github.com/googleapis/gax-go/v2 v2.1.1/go.mod h1:hddJymUZASv3XPyGkUpKj8pPO47Rmb0 github.com/googleapis/gax-go/v2 v2.2.0/go.mod h1:as02EH8zWkzwUoLbBaFeQ+arQaj/OthfcblKl4IGNaM= github.com/googleapis/gax-go/v2 v2.3.0/go.mod h1:b8LNqSzNabLiUpXKkY7HAR5jr6bIT99EXz9pXxye9YM= github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= -github.com/googleapis/gax-go/v2 v2.11.0 h1:9V9PWXEsWnPpQhu/PeQIkS4eGzMlTLGgt80cUUI8Ki4= -github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.2 h1:mhN09QQW1jEWeMF74zGR81R30z4VJzjZsfkUhuHF+DA= +github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= @@ -1186,8 +1201,9 @@ github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVc github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= @@ -1197,6 +1213,7 @@ github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcME github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= @@ -1393,8 +1410,9 @@ github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= -github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -1474,10 +1492,10 @@ github.com/pulumi/pulumi-go-helmbase v0.0.15-0.20240130224250-9aab5822f6ea h1:BG github.com/pulumi/pulumi-go-helmbase v0.0.15-0.20240130224250-9aab5822f6ea/go.mod h1:cxsd1EGTjMa/gjhowyfoT3x2jEFcgRXM6SxyLAT699E= github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.7.1 h1:2UevMcV/aV1CFIUJLfypkIpk/hpV875gzF6qrHCsDlM= github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.7.1/go.mod h1:qhS6ceWLzuezFONGe+0OOxGuMLKLUdQk816B07/D8IY= -github.com/pulumi/pulumi/pkg/v3 v3.103.1 h1:sxacPM2TyDSCufZkescZGnMR22t+REu9nhv68u9rLQ8= -github.com/pulumi/pulumi/pkg/v3 v3.103.1/go.mod h1:AotODpuSfN4XommpmMifBExNmucrnH84cbEhVOeqEQM= -github.com/pulumi/pulumi/sdk/v3 v3.103.1 h1:6o0zt5srgIjDsOI5JWNSwMqoB8vGiI3xow0RDZ3JX2c= -github.com/pulumi/pulumi/sdk/v3 v3.103.1/go.mod h1:Ml3rpGfyZlI4zQCG7LN2XDSmH4XUNYdyBwJ3yEr/OpI= +github.com/pulumi/pulumi/pkg/v3 v3.113.0 h1:fo63QR2nB5ksqq0fxg5uPm/zbXW7eJVRdYpAawIda7I= +github.com/pulumi/pulumi/pkg/v3 v3.113.0/go.mod h1:i5hGDlTN59giiXHfrigWEo30x51FPUj8GllAlVkUcQA= +github.com/pulumi/pulumi/sdk/v3 v3.113.0 h1:CIlmxJZdjxpPPoFe/rrP1dWTwh3CB7ahs/dA6SHcbuE= +github.com/pulumi/pulumi/sdk/v3 v3.113.0/go.mod h1:JWSzKBoHd8rlncC1DhXLf7YdV+Bk/Qf+hSZOOQh0WwQ= github.com/rakyll/embedmd v0.0.0-20171029212350-c8060a0752a2/go.mod h1:7jOTMgqac46PZcF54q6l2hkLEG8op93fZu61KmxWDV4= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= @@ -1557,8 +1575,8 @@ github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKv github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -1693,14 +1711,20 @@ go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0 h1:4Pp6oUg3+e/6M4C0A/3kJ2VYa++dsWVTtGgLVj5xtHg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.31.0/go.mod h1:PFmBsWbldL1kiWZk9+0LBZz2brhByaGsvp6pRICMlPE= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.32.0/go.mod h1:5eCOqeGphOyz6TsY3ZDNjE33SM/TFAK3RGuCL2naTgY= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= go.opentelemetry.io/otel v1.6.0/go.mod h1:bfJD2DZVw0LBxghOTlgnlI0CV3hLDu9XF/QKOUXMTQQ= go.opentelemetry.io/otel v1.6.1/go.mod h1:blzUabWHkX6LJewxvadmzafgh/wnvBSDBdOuwkAtrWQ= go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk= +go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.6.1/go.mod h1:NEu79Xo32iVb+0gVNV8PMd7GoWqnyDXRlj04yFjqz40= @@ -1717,11 +1741,15 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.7.0/go.mod h1 go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= go.opentelemetry.io/otel/metric v0.28.0/go.mod h1:TrzsfQAmQaB1PDcdhBauLMk7nyyg9hm+GoQq/ekE9Iw= go.opentelemetry.io/otel/metric v0.30.0/go.mod h1:/ShZ7+TS4dHzDFmfi1kSXMhMVubNoP0oIaBp70J6UXU= +go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= go.opentelemetry.io/otel/sdk v1.6.1/go.mod h1:IVYrddmFZ+eJqu2k38qD3WezFR2pymCzm8tdxyh3R4E= go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe374q6cZwUU= +go.opentelemetry.io/otel/sdk v1.22.0 h1:6coWHw9xw7EfClIC/+O31R8IY3/+EiRFHevmHafB2Gw= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= @@ -1729,6 +1757,8 @@ go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKu go.opentelemetry.io/otel/trace v1.6.0/go.mod h1:qs7BrU5cZ8dXQHBGxHMOxwME/27YH2qEp4/+tZLLwJE= go.opentelemetry.io/otel/trace v1.6.1/go.mod h1:RkFRM1m0puWIq10oxImnGEduNBzxiN7TXluRBtE+5j0= go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU= +go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= go.opentelemetry.io/proto/otlp v0.12.1/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= @@ -1756,8 +1786,9 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= go.uber.org/zap v1.21.0/go.mod h1:wjWOCqI0f2ZZrJF/UufIOkiC8ii6tm1iqIsLo76RfJw= -gocloud.dev v0.27.0 h1:j0WTUsnKTxCsWO7y8T+YCiBZUmLl9w/WIowqAY3yo0g= gocloud.dev v0.27.0/go.mod h1:YlYKhYsY5/1JdHGWQDkAuqkezVKowu7qbe9aIeUF6p0= +gocloud.dev v0.37.0 h1:XF1rN6R0qZI/9DYjN16Uy0durAmSlf58DHOcb28GPro= +gocloud.dev v0.37.0/go.mod h1:7/O4kqdInCNsc6LqgmuFnS0GRew4XNNYWpA44yQnwco= gocloud.dev/secrets/hashivault v0.27.0 h1:AAeGJXr0tiHHJgg5tL8atOGktB4eK9EJAqkZbPKAcOo= gocloud.dev/secrets/hashivault v0.27.0/go.mod h1:offqsI5oj0B0bVHZdfk/88uIb3NnN93ia8py0yvRlHY= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= @@ -1791,14 +1822,15 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220511200225-c6db032c6c88/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= -golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= +golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1841,6 +1873,7 @@ golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1922,12 +1955,14 @@ golang.org/x/net v0.0.0-20220617184016-355a448f1bc9/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220802222814-0bcc04d9c69b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= +golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1953,8 +1988,8 @@ golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7Lm golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220628200809-02e64fa58f26/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE= golang.org/x/oauth2 v0.0.0-20220722155238-128564f6959c/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= +golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1970,8 +2005,9 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -2115,24 +2151,30 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220731174439-a90be440212d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= +golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -2146,6 +2188,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= @@ -2159,8 +2203,9 @@ golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220224211638-0e9765cccd65/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20220609170525-579cf78fd858/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9 h1:ftMN5LMiBFjbzleLqtoBZk7KdJwhuybIU+FckUHgoyQ= golang.org/x/time v0.0.0-20220722155302-e5dcc9cfc0b9/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -2246,8 +2291,9 @@ golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.15.0 h1:zdAyfUGbYmuVokhzVmghFl2ZJh5QhcfebBgmVPFYA+8= -golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -2257,8 +2303,8 @@ golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20220517211312-f3a8303e98df/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20220609144429-65e65417b02f/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 h1:+cNy6SZtPcJQH3LJVLOSmiC7MMxXNOb3PU/VUEz+EhU= +golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= @@ -2307,8 +2353,8 @@ google.golang.org/api v0.85.0/go.mod h1:AqZf8Ep9uZ2pyTvgL+x0D3Zt0eoT9b5E8fmzfu6F google.golang.org/api v0.86.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= google.golang.org/api v0.90.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= google.golang.org/api v0.91.0/go.mod h1:+Sem1dnrKlrXMR/X0bPnMWyluQe4RsNoYfmNLhOIkzw= -google.golang.org/api v0.126.0 h1:q4GJq+cAdMAC7XP7njvQ4tvohGLiSlytuL4BQxbIZ+o= -google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.169.0 h1:QwWPy71FgMWqJN/l6jVlFHUa29a7dcUy02I8o799nPY= +google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -2316,8 +2362,9 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -2420,12 +2467,12 @@ google.golang.org/genproto v0.0.0-20220617124728-180714bec0ad/go.mod h1:KEWEmljW google.golang.org/genproto v0.0.0-20220624142145-8cd45d7dbd1f/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/genproto v0.0.0-20220802133213-ce4fa296bf78/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= -google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e h1:xIXmWJ303kJCuogpj0bHq+dcjcZHU+XFyc1I0Yl9cRg= -google.golang.org/genproto v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:0ggbjUrZYpy1q+ANUS30SEoGZ53cdfwtbuG7Ptgy108= -google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130 h1:XVeBY8d/FaK4848myy41HBqnDwvxeV3zMZhwN1TvAMU= -google.golang.org/genproto/googleapis/api v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:mPBs5jNgx2GuQGvFwUvVKqtn6HsUw9nP64BedgvqEsQ= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130 h1:2FZP5XuJY9zQyGM5N0rtovnoXjiMUEIUMvw0m9wlpLc= -google.golang.org/genproto/googleapis/rpc v0.0.0-20230706204954-ccb25ca9f130/go.mod h1:8mL13HKkDa+IuJ8yruA3ci0q+0vsUz4m//+ottjwS5o= +google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7 h1:ImUcDPHjTrAqNhlOkSocDLfG9rrNHH7w7uoKWPaWZ8s= +google.golang.org/genproto v0.0.0-20240311173647-c811ad7063a7/go.mod h1:/3XmxOjePkvmKrHuBy4zNFw7IzxJXtAgdpXi8Ll990U= +google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7 h1:oqta3O3AnlWbmIE3bFnWbu4bRxZjfbWCp0cKSuZh01E= +google.golang.org/genproto/googleapis/api v0.0.0-20240311173647-c811ad7063a7/go.mod h1:VQW3tUculP/D4B+xVCo+VgSq8As6wA9ZjHl//pmk+6s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 h1:8EeVk1VKMD+GD/neyEHGmz7pFblqPjHoi+PGQIlLx2s= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -2469,8 +2516,8 @@ google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.46.2/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= -google.golang.org/grpc v1.57.1 h1:upNTNqv0ES+2ZOOqACwVtS3Il8M12/+Hz41RCPzAjQg= -google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= +google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/provider/pkg/provider/chart.go b/provider/pkg/provider/chart.go index d17c3cc..90b660c 100644 --- a/provider/pkg/provider/chart.go +++ b/provider/pkg/provider/chart.go @@ -130,7 +130,7 @@ type CertManagerGlobalLeaderElection struct { RenewDeadline *string `pulumi:"renewDeadline"` // The duration the clients should wait between attempting acquisition and // renewal of a leadership. - RetryPeriod *string `pulumi:"retryPeriod` + RetryPeriod *string `pulumi:"retryPeriod"` } type CertManagerImage struct { diff --git a/schema.json b/schema.json deleted file mode 100644 index 537d08e..0000000 --- a/schema.json +++ /dev/null @@ -1,909 +0,0 @@ -{ - "name": "kubernetes-cert-manager", - "displayName": "Kubernetes Cert Manager", - "keywords": [ - "pulumi", - "kubernetes", - "cert-manager", - "kind/component", - "category/infrastructure" - ], - "publisher": "Pulumi", - "resources": { - "kubernetes-cert-manager:index:CertManager": { - "description": "Automates the management and issuance of TLS certificates from various issuing sources within Kubernetes", - "isComponent": true, - "inputProperties": { - "affinity": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Affinity" - }, - "cainjector": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerCaInjector" - }, - "clusterResourceNamespace": { - "description": "Override the namespace used to store DNS provider credentials etc. for ClusterIssuer resources. By default, the same namespace as cert-manager is deployed within is used. This namespace will not be automatically created by the Helm chart.", - "type": "string" - }, - "containerSecurityContext": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:SecurityContext", - "description": "Container Security Context to be set on the controller component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "deploymentAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the controller Deployment", - "type": "object" - }, - "extraArgs": { - "description": "Optional additional arguments.", - "items": { - "type": "string" - }, - "type": "array" - }, - "extraEnv": { - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:EnvVar" - }, - "type": "array" - }, - "extraVolumeMounts": { - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:VolumeMount" - }, - "type": "array" - }, - "extraVolumes": { - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Volume" - }, - "type": "array" - }, - "featureGates": { - "description": "Comma separated list of feature gates that should be enabled on the controller pod.", - "type": "string" - }, - "global": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerGlobal" - }, - "helmOptions": { - "$ref": "#/types/kubernetes-cert-manager:index:Release", - "description": "HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args." - }, - "http_proxy": { - "type": "string" - }, - "https_proxy": { - "type": "string" - }, - "image": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerImage" - }, - "ingressShim": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerIngressShim" - }, - "installCRDs": { - "type": "boolean" - }, - "no_proxy": { - "items": { - "type": "string" - }, - "type": "array" - }, - "nodeSelector": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:NodeSelector" - }, - "podAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the controller Pods", - "type": "object" - }, - "podDnsConfig": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:PodDNSConfig" - }, - "podDnsPolicy": { - "description": "Optional DNS settings, useful if you have a public and private DNS zone for the same domain on Route 53. What follows is an example of ensuring cert-manager can access an ingress or DNS TXT records at all times. NOTE: This requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for the cluster to work.", - "type": "string" - }, - "podLabels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "prometheus": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerPrometheus" - }, - "replicaCount": { - "type": "integer" - }, - "resources": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:ResourceRequirements" - }, - "securityContext": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:PodSecurityContext", - "description": "Pod Security Context. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "serviceAccount": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerServiceAccount" - }, - "serviceAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the controller service", - "type": "object" - }, - "serviceLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional labels to add to the controller Service", - "type": "object" - }, - "startupapicheck": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerStartupAPICheck" - }, - "strategy": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:apps/v1:DeploymentStrategy" - }, - "tolerations": { - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Toleration" - }, - "type": "array" - }, - "webhook": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerWebhook" - } - }, - "properties": { - "status": { - "$ref": "#/types/kubernetes-cert-manager:index:ReleaseStatus", - "description": "Detailed information about the status of the underlying Helm deployment." - } - }, - "required": [ - "status" - ] - } - }, - "types": { - "kubernetes-cert-manager:index:Release": { - "description": "A Release is an instance of a chart running in a Kubernetes cluster.\nA Chart is a Helm package. It contains all of the resource definitions necessary to run an application, tool, or service inside of a Kubernetes cluster.\nNote - Helm Release is currently in BETA and may change. Use in production environment is discouraged.", - "properties": { - "atomic": { - "type": "boolean", - "description": "If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used." - }, - "chart": { - "type": "string", - "description": "Chart name to be installed. A path may be used." - }, - "cleanupOnFail": { - "type": "boolean", - "description": "Allow deletion of new resources created in this upgrade when upgrade fails." - }, - "createNamespace": { - "type": "boolean", - "description": "Create the namespace if it does not exist." - }, - "dependencyUpdate": { - "type": "boolean", - "description": "Run helm dependency update before installing the chart." - }, - "description": { - "type": "string", - "description": "Add a custom description" - }, - "devel": { - "type": "boolean", - "description": "Use chart development versions, too. Equivalent to version '\u003e0.0.0-0'. If `version` is set, this is ignored." - }, - "disableCRDHooks": { - "type": "boolean", - "description": "Prevent CRD hooks from, running, but run other hooks. See helm install --no-crd-hook" - }, - "disableOpenapiValidation": { - "type": "boolean", - "description": "If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema" - }, - "disableWebhooks": { - "type": "boolean", - "description": "Prevent hooks from running." - }, - "forceUpdate": { - "type": "boolean", - "description": "Force resource update through delete/recreate if needed." - }, - "keyring": { - "type": "string", - "description": "Location of public keys used for verification. Used only if `verify` is true" - }, - "lint": { - "type": "boolean", - "description": "Run helm lint when planning." - }, - "manifest": { - "type": "object", - "additionalProperties": { - "$ref": "pulumi.json#/Any" - }, - "description": "The rendered manifests as JSON. Not yet supported." - }, - "maxHistory": { - "type": "integer", - "description": "Limit the maximum number of revisions saved per release. Use 0 for no limit." - }, - "name": { - "type": "string", - "description": "Release name." - }, - "namespace": { - "type": "string", - "description": "Namespace to install the release into." - }, - "postrender": { - "type": "string", - "description": "Postrender command to run." - }, - "recreatePods": { - "type": "boolean", - "description": "Perform pods restart during upgrade/rollback." - }, - "renderSubchartNotes": { - "type": "boolean", - "description": "If set, render subchart notes along with the parent." - }, - "replace": { - "type": "boolean", - "description": "Re-use the given name, even if that name is already used. This is unsafe in production" - }, - "repositoryOpts": { - "$ref": "#/types/kubernetes-cert-manager:index:RepositoryOpts", - "description": "Specification defining the Helm chart repository to use." - }, - "resetValues": { - "type": "boolean", - "description": "When upgrading, reset the values to the ones built into the chart." - }, - "resourceNames": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - }, - "description": "Names of resources created by the release grouped by \"kind/version\"." - }, - "reuseValues": { - "type": "boolean", - "description": "When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored" - }, - "skipAwait": { - "type": "boolean", - "description": "By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic." - }, - "skipCrds": { - "type": "boolean", - "description": "If set, no CRDs will be installed. By default, CRDs are installed if not already present." - }, - "timeout": { - "type": "integer", - "description": "Time in seconds to wait for any individual kubernetes operation." - }, - "valueYamlFiles": { - "type": "array", - "items": { - "$ref": "pulumi.json#/Asset" - }, - "description": "List of assets (raw yaml files). Content is read and merged with values. Not yet supported." - }, - "values": { - "type": "object", - "additionalProperties": { - "$ref": "pulumi.json#/Any" - }, - "description": "Custom values set for the release." - }, - "verify": { - "type": "boolean", - "description": "Verify the package before installing it." - }, - "version": { - "type": "string", - "description": "Specify the exact chart version to install. If this is not specified, the latest version is installed." - }, - "waitForJobs": { - "type": "boolean", - "description": "Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled." - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:ReleaseStatus": { - "properties": { - "appVersion": { - "type": "string", - "description": "The version number of the application being deployed." - }, - "chart": { - "type": "string", - "description": "The name of the chart." - }, - "name": { - "type": "string", - "description": "Name is the name of the release." - }, - "namespace": { - "type": "string", - "description": "Namespace is the kubernetes namespace of the release." - }, - "revision": { - "type": "integer", - "description": "Version is an int32 which represents the version of the release." - }, - "status": { - "type": "string", - "description": "Status of the release." - }, - "version": { - "type": "string", - "description": "A SemVer 2 conformant version string of the chart." - } - }, - "type": "object", - "required": [ - "name", - "revision", - "namespace", - "chart", - "version", - "appVersion", - "status" - ] - }, - "kubernetes-cert-manager:index:RepositoryOpts": { - "description": "Specification defining the Helm chart repository to use.", - "properties": { - "caFile": { - "type": "string", - "description": "The Repository's CA File" - }, - "certFile": { - "type": "string", - "description": "The repository's cert file" - }, - "keyFile": { - "type": "string", - "description": "The repository's cert key file" - }, - "password": { - "type": "string", - "description": "Password for HTTP basic authentication", - "secret": true - }, - "repo": { - "type": "string", - "description": "Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository." - }, - "username": { - "type": "string", - "description": "Username for HTTP basic authentication" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "repo", - "keyFile", - "certFile", - "caFile", - "username", - "password" - ] - } - } - }, - "kubernetes-cert-manager:index:CertManagerCaInjector": { - "properties": { - "affinity": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Affinity" - }, - "containerSecurityContext": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:SecurityContext", - "description": "Container Security Context to be set on the cainjector component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "deploymentAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the cainjector Deployment", - "type": "object" - }, - "extraArgs": { - "description": "Optional additional arguments for cainjector", - "items": { - "type": "string" - }, - "type": "array" - }, - "image": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerImage" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the cainjector Pods", - "type": "object" - }, - "podLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional labels to add to the Webhook Pods", - "type": "object" - }, - "podSecurityContext": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:PodSecurityContext", - "description": "Pod Security Context to be set on the cainjector component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "replicaCount": { - "type": "integer" - }, - "resources": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:ResourceRequirements" - }, - "serviceAccount": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerServiceAccount" - }, - "strategy": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:apps/v1:DeploymentStrategy" - }, - "timeoutSeconds": { - "type": "integer" - }, - "tolerations": { - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Toleration" - }, - "type": "array" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerGlobal": { - "properties": { - "imagePullSecrets": { - "description": "Reference to one or more secrets to be used when pulling images. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/", - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:LocalObjectReference" - }, - "type": "array" - }, - "leaderElection": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerGlobalLeaderElection" - }, - "logLevel": { - "description": "Set the verbosity of cert-manager. Range of 0 - 6 with 6 being the most verbose.", - "type": "integer" - }, - "podSecurityPolicy": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerGlobalPodSecurityPolicy" - }, - "priorityClassName": { - "description": "Optional priority class to be used for the cert-manager pods.", - "type": "string" - }, - "rbac": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerGlobalRbac" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerGlobalLeaderElection": { - "properties": { - "leaseDuration": { - "description": "The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate.", - "type": "string" - }, - "namespace": { - "description": "Override the namespace used to store the ConfigMap for leader election.", - "type": "string" - }, - "renewDeadline": { - "description": "The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration.", - "type": "string" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerGlobalPodSecurityPolicy": { - "properties": { - "enabled": { - "type": "boolean" - }, - "useAppArmor": { - "type": "boolean" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerGlobalRbac": { - "properties": { - "create": { - "type": "boolean" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerImage": { - "properties": { - "digest": { - "description": "Setting a digest will override any tag, e.g. `digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20`.", - "type": "string" - }, - "pullPolicy": { - "type": "string" - }, - "registry": { - "description": "You can manage a registry with `registry: quay.io`.", - "type": "string" - }, - "repository": { - "description": "You can manage a registry with `repository: jetstack/cert-manager-controller`.", - "type": "string" - }, - "tag": { - "description": "Override the image tag to deploy by setting this variable. If no value is set, the chart's appVersion will be used.", - "type": "string" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerIngressShim": { - "properties": { - "defaultIssuerGroup": { - "type": "string" - }, - "defaultIssuerKind": { - "type": "string" - }, - "defaultIssuerName": { - "type": "string" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerPrometheus": { - "properties": { - "enabled": { - "type": "boolean" - }, - "serviceMonitor": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerPrometheusServiceMonitor" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerPrometheusServiceMonitor": { - "properties": { - "enabled": { - "type": "boolean" - }, - "interval": { - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "path": { - "type": "string" - }, - "prometheusInstance": { - "type": "string" - }, - "string": { - "type": "string" - }, - "targetPort": { - "type": "integer" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerServiceAccount": { - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the controller's ServiceAccount.", - "type": "object" - }, - "automountServiceAccountToken": { - "description": "Automount API credentials for a Service Account.", - "type": "boolean" - }, - "create": { - "description": "Specifies whether a service account should be created", - "type": "boolean" - }, - "name": { - "description": "The name of the service account to use. If not set and create is true, a name is generated using the fullname template.", - "type": "string" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerStartupAPICheck": { - "properties": { - "affinity": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Affinity" - }, - "backoffLimit": { - "description": "Job backoffLimit", - "type": "integer" - }, - "enabled": { - "type": "boolean" - }, - "extraArgs": { - "description": "Optional additional arguments for startupapicheck", - "items": { - "type": "string" - }, - "type": "array" - }, - "image": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerImage" - }, - "jobAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the startupapicheck Job", - "type": "object" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the startupapicheck Pods", - "type": "object" - }, - "podLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional labels to add to the startupapicheck Pods", - "type": "object" - }, - "rbac": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerStartupAPICheckRBAC" - }, - "resources": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:ResourceRequirements" - }, - "securityContext": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:PodSecurityContext", - "description": "Pod Security Context to be set on the startupapicheck component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "serviceAccount": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerServiceAccount" - }, - "timeout": { - "description": "Timeout for 'kubectl check api' command", - "type": "string" - }, - "tolerations": { - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Toleration" - }, - "type": "array" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerStartupAPICheckRBAC": { - "properties": { - "annotations": { - "additionalProperties": { - "type": "string" - }, - "description": "annotations for the startup API Check job RBAC and PSP resources", - "type": "object" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerWebhook": { - "properties": { - "affinity": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Affinity" - }, - "containerSecurityContext": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:SecurityContext", - "description": "Container Security Context to be set on the webhook component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "deploymentAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the webhook Deployment", - "type": "object" - }, - "extraArgs": { - "description": "Optional additional arguments for webhook", - "items": { - "type": "string" - }, - "type": "array" - }, - "hostNetwork": { - "description": "Specifies if the webhook should be started in hostNetwork mode. Required for use in some managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working Since the default port for the webhook conflicts with kubelet on the host network, `webhook.securePort` should be changed to an available port if running in hostNetwork mode.", - "type": "boolean" - }, - "image": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerImage" - }, - "livenessProbe": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Probe", - "description": "Liveness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes" - }, - "loadBalancerIP": { - "type": "string" - }, - "mutatingWebhookConfigurationAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the webhook MutatingWebhookConfiguration", - "type": "object" - }, - "nodeSelector": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "podAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the webhook Pods", - "type": "object" - }, - "podLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional labels to add to the Webhook Pods", - "type": "object" - }, - "readinessProbe": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Probe", - "description": "Readiness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes" - }, - "replicaCount": { - "type": "integer" - }, - "resources": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:ResourceRequirements" - }, - "securePort": { - "description": "The port that the webhook should listen on for requests. In GKE private clusters, by default kubernetes apiservers are allowed to talk to the cluster nodes only on 443 and 10250. so configuring securePort: 10250, will work out of the box without needing to add firewall rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000", - "type": "integer" - }, - "securityContext": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:PodSecurityContext", - "description": "Pod Security Context to be set on the webhook component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/" - }, - "serviceAccount": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerServiceAccount" - }, - "serviceAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the webhook service", - "type": "object" - }, - "serviceLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional labels to add to the Webhook Service", - "type": "object" - }, - "serviceType": { - "description": "Specifies how the service should be handled. Useful if you want to expose the webhook to outside of the cluster. In some cases, the control plane cannot reach internal services.", - "type": "string" - }, - "strategy": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:apps/v1:DeploymentStrategy" - }, - "timeoutSeconds": { - "type": "integer" - }, - "tolerations": { - "items": { - "$ref": "/kubernetes/v4.7.1/schema.json#/types/kubernetes:core/v1:Toleration" - }, - "type": "array" - }, - "url": { - "$ref": "#/types/kubernetes-cert-manager:index:CertManagerWebhookURL", - "description": "Overrides the mutating webhook and validating webhook so they reach the webhook service using the `url` field instead of a service." - }, - "validatingWebhookConfigurationAnnotations": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional additional annotations to add to the webhook ValidatingWebhookConfiguration", - "type": "object" - } - }, - "type": "object" - }, - "kubernetes-cert-manager:index:CertManagerWebhookURL": { - "properties": { - "host": { - "type": "string" - } - }, - "type": "object" - } - }, - "language": { - "csharp": { - "namespaces": { - "kubernetes-cert-manager": "KubernetesCertManager" - }, - "packageReferences": { - "Pulumi": "3.*", - "Pulumi.Kubernetes": "3.*" - } - }, - "go": { - "generateResourceContainerTypes": true, - "importBasePath": "github.com/pulumi/pulumi-kubernetes-cert-manager/sdk/go/kubernetes-cert-manager" - }, - "nodejs": { - "dependencies": { - "@pulumi/kubernetes": "^3.7.1" - }, - "devDependencies": { - "typescript": "^3.7.0" - } - }, - "python": { - "requires": { - "pulumi": ">=3.0.0,<4.0.0", - "pulumi-kubernetes": ">=3.7.1,<5.0.0" - } - } - } -} diff --git a/sdk/dotnet/Pulumi.KubernetesCertManager.csproj b/sdk/dotnet/Pulumi.KubernetesCertManager.csproj index aa22f28..0efce85 100644 --- a/sdk/dotnet/Pulumi.KubernetesCertManager.csproj +++ b/sdk/dotnet/Pulumi.KubernetesCertManager.csproj @@ -4,10 +4,10 @@ true Pulumi Pulumi - - - - + Strongly-typed Cert Manager installation + Apache-2.0 + https://pulumi.io + https://github.com/pulumi/pulumi-kubernetes-cert-manager logo.png net6.0 @@ -45,7 +45,7 @@ - + diff --git a/sdk/dotnet/README.md b/sdk/dotnet/README.md index e69de29..cc9ca90 100644 --- a/sdk/dotnet/README.md +++ b/sdk/dotnet/README.md @@ -0,0 +1 @@ +Strongly-typed Cert Manager installation diff --git a/sdk/go/kubernetes-cert-manager/doc.go b/sdk/go/kubernetes-cert-manager/doc.go index 23a2f35..20b2993 100644 --- a/sdk/go/kubernetes-cert-manager/doc.go +++ b/sdk/go/kubernetes-cert-manager/doc.go @@ -1,2 +1,2 @@ -// Package kubernetescertmanager exports types, functions, subpackages for provisioning kubernetescertmanager resources. +// Strongly-typed Cert Manager installation package kubernetescertmanager diff --git a/sdk/java/README.md b/sdk/java/README.md new file mode 100644 index 0000000..134120b --- /dev/null +++ b/sdk/java/README.md @@ -0,0 +1,31 @@ +# Pulumi Cert Manager Component + +This repo contains the Pulumi Cert Manager component for Kubernetes. This add-on automates the +management and issuance of TLS certificates from various issuing sources. It ensures certificates +are valid and up to date periodically, and attempts to renew certificates at an appropriate time +before expiry. + +This component wraps [the Jetstack Cert Manager Helm Chart](https://github.com/jetstack/cert-manager), +and offers a Pulumi-friendly and strongly-typed way to manage Cert Manager installations. + +For examples of usage, see [the official documentation](https://cert-manager.io/docs/), +or refer to [the examples](/examples) in this repo. + +## To Use + +To use this component, first install the Pulumi Package: + +Afterwards, import the library and instantiate it within your Pulumi program: + +## Configuration + +This component supports all of the configuration options of the [official Helm chart]( +https://github.com/jetstack/cert-manager/tree/master/deploy/charts/cert-manager), except that these +are strongly typed so you will get IDE support and static error checking. + +The Helm deployment uses reasonable defaults, including the chart name and repo URL, however, +if you need to override them, you may do so using the `helmOptions` parameter. Refer to +[the API docs for the `kubernetes:helm/v3:Release` Pulumi type]( +https://www.pulumi.com/docs/reference/pkg/kubernetes/helm/v3/release/#inputs) for a full set of choices. + +For complete details, refer to the Pulumi Package details within the Pulumi Registry. diff --git a/sdk/java/build.gradle b/sdk/java/build.gradle new file mode 100644 index 0000000..a7e3248 --- /dev/null +++ b/sdk/java/build.gradle @@ -0,0 +1,153 @@ +// *** WARNING: this file was generated by pulumi-java-gen *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +plugins { + id("signing") + id("java-library") + id("maven-publish") + id("io.github.gradle-nexus.publish-plugin") version "1.1.0" +} + +group = "com.pulumi" + +def resolvedVersion = System.getenv("PACKAGE_VERSION") ?: + (project.version == "unspecified" + ? "0.0.1" + : project.version) + +def signingKey = System.getenv("SIGNING_KEY") +def signingPassword = System.getenv("SIGNING_PASSWORD") +def publishRepoURL = System.getenv("PUBLISH_REPO_URL") ?: "https://s01.oss.sonatype.org" +def publishRepoUsername = System.getenv("PUBLISH_REPO_USERNAME") +def publishRepoPassword = System.getenv("PUBLISH_REPO_PASSWORD") + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(11) + } +} + +compileJava { + options.fork = true + options.forkOptions.jvmArgs.addAll(["-Xmx16g"]) + options.encoding = "UTF-8" +} + +repositories { + mavenLocal() + maven { // The google mirror is less flaky than mavenCentral() + url("https://maven-central.storage-download.googleapis.com/maven2/") + } + mavenCentral() +} + +dependencies { + implementation("com.google.code.findbugs:jsr305:3.0.2") + implementation("com.google.code.gson:gson:2.8.9") + implementation("com.pulumi:pulumi:0.9.9") +} + +task sourcesJar(type: Jar) { + from sourceSets.main.allJava + archiveClassifier.set('sources') +} + +task javadocJar(type: Jar) { + from javadoc + archiveClassifier.set('javadoc') + zip64 = true +} + +def genPulumiResources = tasks.register('genPulumiResources') { + doLast { + def resourcesDir = sourceSets.main.output.resourcesDir + def subDir = project.name.replace(".", "/") + def outDir = file("$resourcesDir/$subDir") + outDir.mkdirs() + new File(outDir, "version.txt").text = resolvedVersion + def info = new Object() + info.metaClass.resource = true + info.metaClass.name = "kubernetes-cert-manager" + info.metaClass.version = resolvedVersion + def infoJson = new groovy.json.JsonBuilder(info).toPrettyString() + new File(outDir, "plugin.json").text = infoJson + } +} + +jar.configure { + dependsOn genPulumiResources +} + +publishing { + publications { + mainPublication(MavenPublication) { + groupId = "com.pulumi" + artifactId = "kubernetes-cert-manager" + version = resolvedVersion + from components.java + artifact sourcesJar + artifact javadocJar + + pom { + inceptionYear = "2022" + name = "pulumi-kubernetes-cert-manager" + packaging = "jar" + description = "Strongly-typed Cert Manager installation" + + url = "https://github.com/pulumi/pulumi-kubernetes-cert-manager" + + scm { + connection = "git@github.com/pulumi/pulumi-kubernetes-cert-manager.git" + developerConnection = "git@github.com/pulumi/pulumi-kubernetes-cert-manager.git" + url = "https://github.com/pulumi/pulumi-kubernetes-cert-manager" + } + + licenses { + license { + name = "The Apache License, Version 2.0" + url = "http://www.apache.org/licenses/LICENSE-2.0.txt" + } + } + + developers { + developer { + id = "pulumi" + name = "Pulumi" + email = "support@pulumi.com" + } + } + } + } + } +} + +javadoc { + if (JavaVersion.current().isJava9Compatible()) { + options.addBooleanOption('html5', true) + } + options.jFlags("-Xmx8g", "-Xms512m") +} + +jar { + zip64 = true +} + +if (publishRepoUsername) { + nexusPublishing { + repositories { + sonatype { + nexusUrl.set(uri(publishRepoURL + "/service/local/")) + snapshotRepositoryUrl.set(uri(publishRepoURL + "/content/repositories/snapshots/")) + username = publishRepoUsername + password = publishRepoPassword + } + } + } +} + +if (signingKey) { + signing { + useInMemoryPgpKeys(signingKey, signingPassword) + sign publishing.publications.mainPublication + } +} \ No newline at end of file diff --git a/sdk/java/settings.gradle b/sdk/java/settings.gradle new file mode 100644 index 0000000..6307891 --- /dev/null +++ b/sdk/java/settings.gradle @@ -0,0 +1,14 @@ +// *** WARNING: this file was generated by pulumi-java-gen. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +pluginManagement { + repositories { + maven { // The google mirror is less flaky than mavenCentral() + url("https://maven-central.storage-download.googleapis.com/maven2/") + } + gradlePluginPortal() + } +} + +rootProject.name = "com.pulumi.kubernetes-cert-manager" +include("lib") diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/CertManager.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/CertManager.java new file mode 100644 index 0000000..9a282e9 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/CertManager.java @@ -0,0 +1,68 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Export; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetescertmanager.CertManagerArgs; +import com.pulumi.kubernetescertmanager.Utilities; +import com.pulumi.kubernetescertmanager.outputs.ReleaseStatus; +import javax.annotation.Nullable; + +/** + * Automates the management and issuance of TLS certificates from various issuing sources within Kubernetes + * + */ +@ResourceType(type="kubernetes-cert-manager:index:CertManager") +public class CertManager extends com.pulumi.resources.ComponentResource { + /** + * Detailed information about the status of the underlying Helm deployment. + * + */ + @Export(name="status", refs={ReleaseStatus.class}, tree="[0]") + private Output status; + + /** + * @return Detailed information about the status of the underlying Helm deployment. + * + */ + public Output status() { + return this.status; + } + + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public CertManager(String name) { + this(name, CertManagerArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public CertManager(String name, @Nullable CertManagerArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public CertManager(String name, @Nullable CertManagerArgs args, @Nullable com.pulumi.resources.ComponentResourceOptions options) { + super("kubernetes-cert-manager:index:CertManager", name, args == null ? CertManagerArgs.Empty : args, makeResourceOptions(options, Codegen.empty()), true); + } + + private static com.pulumi.resources.ComponentResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.ComponentResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.ComponentResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.ComponentResourceOptions.merge(defaultOptions, options, id); + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/CertManagerArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/CertManagerArgs.java new file mode 100644 index 0000000..9185e42 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/CertManagerArgs.java @@ -0,0 +1,898 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.apps.v1.inputs.DeploymentStrategyArgs; +import com.pulumi.kubernetes.core.v1.inputs.AffinityArgs; +import com.pulumi.kubernetes.core.v1.inputs.EnvVarArgs; +import com.pulumi.kubernetes.core.v1.inputs.NodeSelectorArgs; +import com.pulumi.kubernetes.core.v1.inputs.PodDNSConfigArgs; +import com.pulumi.kubernetes.core.v1.inputs.PodSecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.ResourceRequirementsArgs; +import com.pulumi.kubernetes.core.v1.inputs.SecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.TolerationArgs; +import com.pulumi.kubernetes.core.v1.inputs.VolumeArgs; +import com.pulumi.kubernetes.core.v1.inputs.VolumeMountArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerCaInjectorArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerGlobalArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerImageArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerIngressShimArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerPrometheusArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerServiceAccountArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerStartupAPICheckArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerWebhookArgs; +import com.pulumi.kubernetescertmanager.inputs.ReleaseArgs; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerArgs Empty = new CertManagerArgs(); + + @Import(name="affinity") + private @Nullable Output affinity; + + public Optional> affinity() { + return Optional.ofNullable(this.affinity); + } + + @Import(name="cainjector") + private @Nullable Output cainjector; + + public Optional> cainjector() { + return Optional.ofNullable(this.cainjector); + } + + /** + * Override the namespace used to store DNS provider credentials etc. for ClusterIssuer resources. By default, the same namespace as cert-manager is deployed within is used. This namespace will not be automatically created by the Helm chart. + * + */ + @Import(name="clusterResourceNamespace") + private @Nullable Output clusterResourceNamespace; + + /** + * @return Override the namespace used to store DNS provider credentials etc. for ClusterIssuer resources. By default, the same namespace as cert-manager is deployed within is used. This namespace will not be automatically created by the Helm chart. + * + */ + public Optional> clusterResourceNamespace() { + return Optional.ofNullable(this.clusterResourceNamespace); + } + + /** + * Container Security Context to be set on the controller component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + @Import(name="containerSecurityContext") + private @Nullable Output containerSecurityContext; + + /** + * @return Container Security Context to be set on the controller component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + public Optional> containerSecurityContext() { + return Optional.ofNullable(this.containerSecurityContext); + } + + /** + * Optional additional annotations to add to the controller Deployment + * + */ + @Import(name="deploymentAnnotations") + private @Nullable Output> deploymentAnnotations; + + /** + * @return Optional additional annotations to add to the controller Deployment + * + */ + public Optional>> deploymentAnnotations() { + return Optional.ofNullable(this.deploymentAnnotations); + } + + /** + * Optional additional arguments. + * + */ + @Import(name="extraArgs") + private @Nullable Output> extraArgs; + + /** + * @return Optional additional arguments. + * + */ + public Optional>> extraArgs() { + return Optional.ofNullable(this.extraArgs); + } + + @Import(name="extraEnv") + private @Nullable Output> extraEnv; + + public Optional>> extraEnv() { + return Optional.ofNullable(this.extraEnv); + } + + @Import(name="extraVolumeMounts") + private @Nullable Output> extraVolumeMounts; + + public Optional>> extraVolumeMounts() { + return Optional.ofNullable(this.extraVolumeMounts); + } + + @Import(name="extraVolumes") + private @Nullable Output> extraVolumes; + + public Optional>> extraVolumes() { + return Optional.ofNullable(this.extraVolumes); + } + + /** + * Comma separated list of feature gates that should be enabled on the controller pod. + * + */ + @Import(name="featureGates") + private @Nullable Output featureGates; + + /** + * @return Comma separated list of feature gates that should be enabled on the controller pod. + * + */ + public Optional> featureGates() { + return Optional.ofNullable(this.featureGates); + } + + @Import(name="global") + private @Nullable Output global; + + public Optional> global() { + return Optional.ofNullable(this.global); + } + + /** + * HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. + * + */ + @Import(name="helmOptions") + private @Nullable Output helmOptions; + + /** + * @return HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. + * + */ + public Optional> helmOptions() { + return Optional.ofNullable(this.helmOptions); + } + + @Import(name="http_proxy") + private @Nullable Output http_proxy; + + public Optional> http_proxy() { + return Optional.ofNullable(this.http_proxy); + } + + @Import(name="https_proxy") + private @Nullable Output https_proxy; + + public Optional> https_proxy() { + return Optional.ofNullable(this.https_proxy); + } + + @Import(name="image") + private @Nullable Output image; + + public Optional> image() { + return Optional.ofNullable(this.image); + } + + @Import(name="ingressShim") + private @Nullable Output ingressShim; + + public Optional> ingressShim() { + return Optional.ofNullable(this.ingressShim); + } + + @Import(name="installCRDs") + private @Nullable Output installCRDs; + + public Optional> installCRDs() { + return Optional.ofNullable(this.installCRDs); + } + + @Import(name="no_proxy") + private @Nullable Output> no_proxy; + + public Optional>> no_proxy() { + return Optional.ofNullable(this.no_proxy); + } + + @Import(name="nodeSelector") + private @Nullable Output nodeSelector; + + public Optional> nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + /** + * Optional additional annotations to add to the controller Pods + * + */ + @Import(name="podAnnotations") + private @Nullable Output> podAnnotations; + + /** + * @return Optional additional annotations to add to the controller Pods + * + */ + public Optional>> podAnnotations() { + return Optional.ofNullable(this.podAnnotations); + } + + @Import(name="podDnsConfig") + private @Nullable Output podDnsConfig; + + public Optional> podDnsConfig() { + return Optional.ofNullable(this.podDnsConfig); + } + + /** + * Optional DNS settings, useful if you have a public and private DNS zone for the same domain on Route 53. What follows is an example of ensuring cert-manager can access an ingress or DNS TXT records at all times. NOTE: This requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for the cluster to work. + * + */ + @Import(name="podDnsPolicy") + private @Nullable Output podDnsPolicy; + + /** + * @return Optional DNS settings, useful if you have a public and private DNS zone for the same domain on Route 53. What follows is an example of ensuring cert-manager can access an ingress or DNS TXT records at all times. NOTE: This requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for the cluster to work. + * + */ + public Optional> podDnsPolicy() { + return Optional.ofNullable(this.podDnsPolicy); + } + + @Import(name="podLabels") + private @Nullable Output> podLabels; + + public Optional>> podLabels() { + return Optional.ofNullable(this.podLabels); + } + + @Import(name="prometheus") + private @Nullable Output prometheus; + + public Optional> prometheus() { + return Optional.ofNullable(this.prometheus); + } + + @Import(name="replicaCount") + private @Nullable Output replicaCount; + + public Optional> replicaCount() { + return Optional.ofNullable(this.replicaCount); + } + + @Import(name="resources") + private @Nullable Output resources; + + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * Pod Security Context. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + @Import(name="securityContext") + private @Nullable Output securityContext; + + /** + * @return Pod Security Context. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + public Optional> securityContext() { + return Optional.ofNullable(this.securityContext); + } + + @Import(name="serviceAccount") + private @Nullable Output serviceAccount; + + public Optional> serviceAccount() { + return Optional.ofNullable(this.serviceAccount); + } + + /** + * Optional additional annotations to add to the controller service + * + */ + @Import(name="serviceAnnotations") + private @Nullable Output> serviceAnnotations; + + /** + * @return Optional additional annotations to add to the controller service + * + */ + public Optional>> serviceAnnotations() { + return Optional.ofNullable(this.serviceAnnotations); + } + + /** + * Optional additional labels to add to the controller Service + * + */ + @Import(name="serviceLabels") + private @Nullable Output> serviceLabels; + + /** + * @return Optional additional labels to add to the controller Service + * + */ + public Optional>> serviceLabels() { + return Optional.ofNullable(this.serviceLabels); + } + + @Import(name="startupapicheck") + private @Nullable Output startupapicheck; + + public Optional> startupapicheck() { + return Optional.ofNullable(this.startupapicheck); + } + + @Import(name="strategy") + private @Nullable Output strategy; + + public Optional> strategy() { + return Optional.ofNullable(this.strategy); + } + + @Import(name="tolerations") + private @Nullable Output> tolerations; + + public Optional>> tolerations() { + return Optional.ofNullable(this.tolerations); + } + + @Import(name="webhook") + private @Nullable Output webhook; + + public Optional> webhook() { + return Optional.ofNullable(this.webhook); + } + + private CertManagerArgs() {} + + private CertManagerArgs(CertManagerArgs $) { + this.affinity = $.affinity; + this.cainjector = $.cainjector; + this.clusterResourceNamespace = $.clusterResourceNamespace; + this.containerSecurityContext = $.containerSecurityContext; + this.deploymentAnnotations = $.deploymentAnnotations; + this.extraArgs = $.extraArgs; + this.extraEnv = $.extraEnv; + this.extraVolumeMounts = $.extraVolumeMounts; + this.extraVolumes = $.extraVolumes; + this.featureGates = $.featureGates; + this.global = $.global; + this.helmOptions = $.helmOptions; + this.http_proxy = $.http_proxy; + this.https_proxy = $.https_proxy; + this.image = $.image; + this.ingressShim = $.ingressShim; + this.installCRDs = $.installCRDs; + this.no_proxy = $.no_proxy; + this.nodeSelector = $.nodeSelector; + this.podAnnotations = $.podAnnotations; + this.podDnsConfig = $.podDnsConfig; + this.podDnsPolicy = $.podDnsPolicy; + this.podLabels = $.podLabels; + this.prometheus = $.prometheus; + this.replicaCount = $.replicaCount; + this.resources = $.resources; + this.securityContext = $.securityContext; + this.serviceAccount = $.serviceAccount; + this.serviceAnnotations = $.serviceAnnotations; + this.serviceLabels = $.serviceLabels; + this.startupapicheck = $.startupapicheck; + this.strategy = $.strategy; + this.tolerations = $.tolerations; + this.webhook = $.webhook; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerArgs $; + + public Builder() { + $ = new CertManagerArgs(); + } + + public Builder(CertManagerArgs defaults) { + $ = new CertManagerArgs(Objects.requireNonNull(defaults)); + } + + public Builder affinity(@Nullable Output affinity) { + $.affinity = affinity; + return this; + } + + public Builder affinity(AffinityArgs affinity) { + return affinity(Output.of(affinity)); + } + + public Builder cainjector(@Nullable Output cainjector) { + $.cainjector = cainjector; + return this; + } + + public Builder cainjector(CertManagerCaInjectorArgs cainjector) { + return cainjector(Output.of(cainjector)); + } + + /** + * @param clusterResourceNamespace Override the namespace used to store DNS provider credentials etc. for ClusterIssuer resources. By default, the same namespace as cert-manager is deployed within is used. This namespace will not be automatically created by the Helm chart. + * + * @return builder + * + */ + public Builder clusterResourceNamespace(@Nullable Output clusterResourceNamespace) { + $.clusterResourceNamespace = clusterResourceNamespace; + return this; + } + + /** + * @param clusterResourceNamespace Override the namespace used to store DNS provider credentials etc. for ClusterIssuer resources. By default, the same namespace as cert-manager is deployed within is used. This namespace will not be automatically created by the Helm chart. + * + * @return builder + * + */ + public Builder clusterResourceNamespace(String clusterResourceNamespace) { + return clusterResourceNamespace(Output.of(clusterResourceNamespace)); + } + + /** + * @param containerSecurityContext Container Security Context to be set on the controller component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder containerSecurityContext(@Nullable Output containerSecurityContext) { + $.containerSecurityContext = containerSecurityContext; + return this; + } + + /** + * @param containerSecurityContext Container Security Context to be set on the controller component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder containerSecurityContext(SecurityContextArgs containerSecurityContext) { + return containerSecurityContext(Output.of(containerSecurityContext)); + } + + /** + * @param deploymentAnnotations Optional additional annotations to add to the controller Deployment + * + * @return builder + * + */ + public Builder deploymentAnnotations(@Nullable Output> deploymentAnnotations) { + $.deploymentAnnotations = deploymentAnnotations; + return this; + } + + /** + * @param deploymentAnnotations Optional additional annotations to add to the controller Deployment + * + * @return builder + * + */ + public Builder deploymentAnnotations(Map deploymentAnnotations) { + return deploymentAnnotations(Output.of(deploymentAnnotations)); + } + + /** + * @param extraArgs Optional additional arguments. + * + * @return builder + * + */ + public Builder extraArgs(@Nullable Output> extraArgs) { + $.extraArgs = extraArgs; + return this; + } + + /** + * @param extraArgs Optional additional arguments. + * + * @return builder + * + */ + public Builder extraArgs(List extraArgs) { + return extraArgs(Output.of(extraArgs)); + } + + /** + * @param extraArgs Optional additional arguments. + * + * @return builder + * + */ + public Builder extraArgs(String... extraArgs) { + return extraArgs(List.of(extraArgs)); + } + + public Builder extraEnv(@Nullable Output> extraEnv) { + $.extraEnv = extraEnv; + return this; + } + + public Builder extraEnv(List extraEnv) { + return extraEnv(Output.of(extraEnv)); + } + + public Builder extraEnv(EnvVarArgs... extraEnv) { + return extraEnv(List.of(extraEnv)); + } + + public Builder extraVolumeMounts(@Nullable Output> extraVolumeMounts) { + $.extraVolumeMounts = extraVolumeMounts; + return this; + } + + public Builder extraVolumeMounts(List extraVolumeMounts) { + return extraVolumeMounts(Output.of(extraVolumeMounts)); + } + + public Builder extraVolumeMounts(VolumeMountArgs... extraVolumeMounts) { + return extraVolumeMounts(List.of(extraVolumeMounts)); + } + + public Builder extraVolumes(@Nullable Output> extraVolumes) { + $.extraVolumes = extraVolumes; + return this; + } + + public Builder extraVolumes(List extraVolumes) { + return extraVolumes(Output.of(extraVolumes)); + } + + public Builder extraVolumes(VolumeArgs... extraVolumes) { + return extraVolumes(List.of(extraVolumes)); + } + + /** + * @param featureGates Comma separated list of feature gates that should be enabled on the controller pod. + * + * @return builder + * + */ + public Builder featureGates(@Nullable Output featureGates) { + $.featureGates = featureGates; + return this; + } + + /** + * @param featureGates Comma separated list of feature gates that should be enabled on the controller pod. + * + * @return builder + * + */ + public Builder featureGates(String featureGates) { + return featureGates(Output.of(featureGates)); + } + + public Builder global(@Nullable Output global) { + $.global = global; + return this; + } + + public Builder global(CertManagerGlobalArgs global) { + return global(Output.of(global)); + } + + /** + * @param helmOptions HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. + * + * @return builder + * + */ + public Builder helmOptions(@Nullable Output helmOptions) { + $.helmOptions = helmOptions; + return this; + } + + /** + * @param helmOptions HelmOptions is an escape hatch that lets the end user control any aspect of the Helm deployment. This exposes the entirety of the underlying Helm Release component args. + * + * @return builder + * + */ + public Builder helmOptions(ReleaseArgs helmOptions) { + return helmOptions(Output.of(helmOptions)); + } + + public Builder http_proxy(@Nullable Output http_proxy) { + $.http_proxy = http_proxy; + return this; + } + + public Builder http_proxy(String http_proxy) { + return http_proxy(Output.of(http_proxy)); + } + + public Builder https_proxy(@Nullable Output https_proxy) { + $.https_proxy = https_proxy; + return this; + } + + public Builder https_proxy(String https_proxy) { + return https_proxy(Output.of(https_proxy)); + } + + public Builder image(@Nullable Output image) { + $.image = image; + return this; + } + + public Builder image(CertManagerImageArgs image) { + return image(Output.of(image)); + } + + public Builder ingressShim(@Nullable Output ingressShim) { + $.ingressShim = ingressShim; + return this; + } + + public Builder ingressShim(CertManagerIngressShimArgs ingressShim) { + return ingressShim(Output.of(ingressShim)); + } + + public Builder installCRDs(@Nullable Output installCRDs) { + $.installCRDs = installCRDs; + return this; + } + + public Builder installCRDs(Boolean installCRDs) { + return installCRDs(Output.of(installCRDs)); + } + + public Builder no_proxy(@Nullable Output> no_proxy) { + $.no_proxy = no_proxy; + return this; + } + + public Builder no_proxy(List no_proxy) { + return no_proxy(Output.of(no_proxy)); + } + + public Builder no_proxy(String... no_proxy) { + return no_proxy(List.of(no_proxy)); + } + + public Builder nodeSelector(@Nullable Output nodeSelector) { + $.nodeSelector = nodeSelector; + return this; + } + + public Builder nodeSelector(NodeSelectorArgs nodeSelector) { + return nodeSelector(Output.of(nodeSelector)); + } + + /** + * @param podAnnotations Optional additional annotations to add to the controller Pods + * + * @return builder + * + */ + public Builder podAnnotations(@Nullable Output> podAnnotations) { + $.podAnnotations = podAnnotations; + return this; + } + + /** + * @param podAnnotations Optional additional annotations to add to the controller Pods + * + * @return builder + * + */ + public Builder podAnnotations(Map podAnnotations) { + return podAnnotations(Output.of(podAnnotations)); + } + + public Builder podDnsConfig(@Nullable Output podDnsConfig) { + $.podDnsConfig = podDnsConfig; + return this; + } + + public Builder podDnsConfig(PodDNSConfigArgs podDnsConfig) { + return podDnsConfig(Output.of(podDnsConfig)); + } + + /** + * @param podDnsPolicy Optional DNS settings, useful if you have a public and private DNS zone for the same domain on Route 53. What follows is an example of ensuring cert-manager can access an ingress or DNS TXT records at all times. NOTE: This requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for the cluster to work. + * + * @return builder + * + */ + public Builder podDnsPolicy(@Nullable Output podDnsPolicy) { + $.podDnsPolicy = podDnsPolicy; + return this; + } + + /** + * @param podDnsPolicy Optional DNS settings, useful if you have a public and private DNS zone for the same domain on Route 53. What follows is an example of ensuring cert-manager can access an ingress or DNS TXT records at all times. NOTE: This requires Kubernetes 1.10 or `CustomPodDNS` feature gate enabled for the cluster to work. + * + * @return builder + * + */ + public Builder podDnsPolicy(String podDnsPolicy) { + return podDnsPolicy(Output.of(podDnsPolicy)); + } + + public Builder podLabels(@Nullable Output> podLabels) { + $.podLabels = podLabels; + return this; + } + + public Builder podLabels(Map podLabels) { + return podLabels(Output.of(podLabels)); + } + + public Builder prometheus(@Nullable Output prometheus) { + $.prometheus = prometheus; + return this; + } + + public Builder prometheus(CertManagerPrometheusArgs prometheus) { + return prometheus(Output.of(prometheus)); + } + + public Builder replicaCount(@Nullable Output replicaCount) { + $.replicaCount = replicaCount; + return this; + } + + public Builder replicaCount(Integer replicaCount) { + return replicaCount(Output.of(replicaCount)); + } + + public Builder resources(@Nullable Output resources) { + $.resources = resources; + return this; + } + + public Builder resources(ResourceRequirementsArgs resources) { + return resources(Output.of(resources)); + } + + /** + * @param securityContext Pod Security Context. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder securityContext(@Nullable Output securityContext) { + $.securityContext = securityContext; + return this; + } + + /** + * @param securityContext Pod Security Context. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder securityContext(PodSecurityContextArgs securityContext) { + return securityContext(Output.of(securityContext)); + } + + public Builder serviceAccount(@Nullable Output serviceAccount) { + $.serviceAccount = serviceAccount; + return this; + } + + public Builder serviceAccount(CertManagerServiceAccountArgs serviceAccount) { + return serviceAccount(Output.of(serviceAccount)); + } + + /** + * @param serviceAnnotations Optional additional annotations to add to the controller service + * + * @return builder + * + */ + public Builder serviceAnnotations(@Nullable Output> serviceAnnotations) { + $.serviceAnnotations = serviceAnnotations; + return this; + } + + /** + * @param serviceAnnotations Optional additional annotations to add to the controller service + * + * @return builder + * + */ + public Builder serviceAnnotations(Map serviceAnnotations) { + return serviceAnnotations(Output.of(serviceAnnotations)); + } + + /** + * @param serviceLabels Optional additional labels to add to the controller Service + * + * @return builder + * + */ + public Builder serviceLabels(@Nullable Output> serviceLabels) { + $.serviceLabels = serviceLabels; + return this; + } + + /** + * @param serviceLabels Optional additional labels to add to the controller Service + * + * @return builder + * + */ + public Builder serviceLabels(Map serviceLabels) { + return serviceLabels(Output.of(serviceLabels)); + } + + public Builder startupapicheck(@Nullable Output startupapicheck) { + $.startupapicheck = startupapicheck; + return this; + } + + public Builder startupapicheck(CertManagerStartupAPICheckArgs startupapicheck) { + return startupapicheck(Output.of(startupapicheck)); + } + + public Builder strategy(@Nullable Output strategy) { + $.strategy = strategy; + return this; + } + + public Builder strategy(DeploymentStrategyArgs strategy) { + return strategy(Output.of(strategy)); + } + + public Builder tolerations(@Nullable Output> tolerations) { + $.tolerations = tolerations; + return this; + } + + public Builder tolerations(List tolerations) { + return tolerations(Output.of(tolerations)); + } + + public Builder tolerations(TolerationArgs... tolerations) { + return tolerations(List.of(tolerations)); + } + + public Builder webhook(@Nullable Output webhook) { + $.webhook = webhook; + return this; + } + + public Builder webhook(CertManagerWebhookArgs webhook) { + return webhook(Output.of(webhook)); + } + + public CertManagerArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/Provider.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/Provider.java new file mode 100644 index 0000000..4438547 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/Provider.java @@ -0,0 +1,47 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.ResourceType; +import com.pulumi.core.internal.Codegen; +import com.pulumi.kubernetescertmanager.ProviderArgs; +import com.pulumi.kubernetescertmanager.Utilities; +import javax.annotation.Nullable; + +@ResourceType(type="pulumi:providers:kubernetes-cert-manager") +public class Provider extends com.pulumi.resources.ProviderResource { + /** + * + * @param name The _unique_ name of the resulting resource. + */ + public Provider(String name) { + this(name, ProviderArgs.Empty); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + */ + public Provider(String name, @Nullable ProviderArgs args) { + this(name, args, null); + } + /** + * + * @param name The _unique_ name of the resulting resource. + * @param args The arguments to use to populate this resource's properties. + * @param options A bag of options that control this resource's behavior. + */ + public Provider(String name, @Nullable ProviderArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { + super("kubernetes-cert-manager", name, args == null ? ProviderArgs.Empty : args, makeResourceOptions(options, Codegen.empty())); + } + + private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { + var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() + .version(Utilities.getVersion()) + .build(); + return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/ProviderArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/ProviderArgs.java new file mode 100644 index 0000000..7725083 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/ProviderArgs.java @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager; + + + + +public final class ProviderArgs extends com.pulumi.resources.ResourceArgs { + + public static final ProviderArgs Empty = new ProviderArgs(); + + public static Builder builder() { + return new Builder(); + } + + public static final class Builder { + private ProviderArgs $; + + public Builder() { + $ = new ProviderArgs(); + } + public ProviderArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/Utilities.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/Utilities.java new file mode 100644 index 0000000..bc3535a --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/Utilities.java @@ -0,0 +1,89 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager; + + + + + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.Optional; +import java.util.stream.Collectors; +import javax.annotation.Nullable; +import com.pulumi.core.internal.Environment; +import com.pulumi.deployment.InvokeOptions; + +public class Utilities { + + public static Optional getEnv(String... names) { + for (var n : names) { + var value = Environment.getEnvironmentVariable(n); + if (value.isValue()) { + return Optional.of(value.value()); + } + } + return Optional.empty(); + } + + public static Optional getEnvBoolean(String... names) { + for (var n : names) { + var value = Environment.getBooleanEnvironmentVariable(n); + if (value.isValue()) { + return Optional.of(value.value()); + } + } + return Optional.empty(); + } + + public static Optional getEnvInteger(String... names) { + for (var n : names) { + var value = Environment.getIntegerEnvironmentVariable(n); + if (value.isValue()) { + return Optional.of(value.value()); + } + } + return Optional.empty(); + } + + public static Optional getEnvDouble(String... names) { + for (var n : names) { + var value = Environment.getDoubleEnvironmentVariable(n); + if (value.isValue()) { + return Optional.of(value.value()); + } + } + return Optional.empty(); + } + + public static InvokeOptions withVersion(@Nullable InvokeOptions options) { + if (options != null && options.getVersion().isPresent()) { + return options; + } + return new InvokeOptions( + options == null ? null : options.getParent().orElse(null), + options == null ? null : options.getProvider().orElse(null), + getVersion() + ); + } + + private static final String version; + public static String getVersion() { + return version; + } + + static { + var resourceName = "com/pulumi/kubernetes-cert-manager/version.txt"; + var versionFile = Utilities.class.getClassLoader().getResourceAsStream(resourceName); + if (versionFile == null) { + throw new IllegalStateException( + String.format("expected resource '%s' on Classpath, not found", resourceName) + ); + } + version = new BufferedReader(new InputStreamReader(versionFile)) + .lines() + .collect(Collectors.joining("\n")) + .trim(); + } +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerCaInjectorArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerCaInjectorArgs.java new file mode 100644 index 0000000..5705fe5 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerCaInjectorArgs.java @@ -0,0 +1,446 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.apps.v1.inputs.DeploymentStrategyArgs; +import com.pulumi.kubernetes.core.v1.inputs.AffinityArgs; +import com.pulumi.kubernetes.core.v1.inputs.PodSecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.ResourceRequirementsArgs; +import com.pulumi.kubernetes.core.v1.inputs.SecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.TolerationArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerImageArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerServiceAccountArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerCaInjectorArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerCaInjectorArgs Empty = new CertManagerCaInjectorArgs(); + + @Import(name="affinity") + private @Nullable Output affinity; + + public Optional> affinity() { + return Optional.ofNullable(this.affinity); + } + + /** + * Container Security Context to be set on the cainjector component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + @Import(name="containerSecurityContext") + private @Nullable Output containerSecurityContext; + + /** + * @return Container Security Context to be set on the cainjector component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + public Optional> containerSecurityContext() { + return Optional.ofNullable(this.containerSecurityContext); + } + + /** + * Optional additional annotations to add to the cainjector Deployment + * + */ + @Import(name="deploymentAnnotations") + private @Nullable Output> deploymentAnnotations; + + /** + * @return Optional additional annotations to add to the cainjector Deployment + * + */ + public Optional>> deploymentAnnotations() { + return Optional.ofNullable(this.deploymentAnnotations); + } + + /** + * Optional additional arguments for cainjector + * + */ + @Import(name="extraArgs") + private @Nullable Output> extraArgs; + + /** + * @return Optional additional arguments for cainjector + * + */ + public Optional>> extraArgs() { + return Optional.ofNullable(this.extraArgs); + } + + @Import(name="image") + private @Nullable Output image; + + public Optional> image() { + return Optional.ofNullable(this.image); + } + + @Import(name="nodeSelector") + private @Nullable Output> nodeSelector; + + public Optional>> nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + /** + * Optional additional annotations to add to the cainjector Pods + * + */ + @Import(name="podAnnotations") + private @Nullable Output> podAnnotations; + + /** + * @return Optional additional annotations to add to the cainjector Pods + * + */ + public Optional>> podAnnotations() { + return Optional.ofNullable(this.podAnnotations); + } + + /** + * Optional additional labels to add to the Webhook Pods + * + */ + @Import(name="podLabels") + private @Nullable Output> podLabels; + + /** + * @return Optional additional labels to add to the Webhook Pods + * + */ + public Optional>> podLabels() { + return Optional.ofNullable(this.podLabels); + } + + /** + * Pod Security Context to be set on the cainjector component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + @Import(name="podSecurityContext") + private @Nullable Output podSecurityContext; + + /** + * @return Pod Security Context to be set on the cainjector component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + public Optional> podSecurityContext() { + return Optional.ofNullable(this.podSecurityContext); + } + + @Import(name="replicaCount") + private @Nullable Output replicaCount; + + public Optional> replicaCount() { + return Optional.ofNullable(this.replicaCount); + } + + @Import(name="resources") + private @Nullable Output resources; + + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + + @Import(name="serviceAccount") + private @Nullable Output serviceAccount; + + public Optional> serviceAccount() { + return Optional.ofNullable(this.serviceAccount); + } + + @Import(name="strategy") + private @Nullable Output strategy; + + public Optional> strategy() { + return Optional.ofNullable(this.strategy); + } + + @Import(name="timeoutSeconds") + private @Nullable Output timeoutSeconds; + + public Optional> timeoutSeconds() { + return Optional.ofNullable(this.timeoutSeconds); + } + + @Import(name="tolerations") + private @Nullable Output> tolerations; + + public Optional>> tolerations() { + return Optional.ofNullable(this.tolerations); + } + + private CertManagerCaInjectorArgs() {} + + private CertManagerCaInjectorArgs(CertManagerCaInjectorArgs $) { + this.affinity = $.affinity; + this.containerSecurityContext = $.containerSecurityContext; + this.deploymentAnnotations = $.deploymentAnnotations; + this.extraArgs = $.extraArgs; + this.image = $.image; + this.nodeSelector = $.nodeSelector; + this.podAnnotations = $.podAnnotations; + this.podLabels = $.podLabels; + this.podSecurityContext = $.podSecurityContext; + this.replicaCount = $.replicaCount; + this.resources = $.resources; + this.serviceAccount = $.serviceAccount; + this.strategy = $.strategy; + this.timeoutSeconds = $.timeoutSeconds; + this.tolerations = $.tolerations; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerCaInjectorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerCaInjectorArgs $; + + public Builder() { + $ = new CertManagerCaInjectorArgs(); + } + + public Builder(CertManagerCaInjectorArgs defaults) { + $ = new CertManagerCaInjectorArgs(Objects.requireNonNull(defaults)); + } + + public Builder affinity(@Nullable Output affinity) { + $.affinity = affinity; + return this; + } + + public Builder affinity(AffinityArgs affinity) { + return affinity(Output.of(affinity)); + } + + /** + * @param containerSecurityContext Container Security Context to be set on the cainjector component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder containerSecurityContext(@Nullable Output containerSecurityContext) { + $.containerSecurityContext = containerSecurityContext; + return this; + } + + /** + * @param containerSecurityContext Container Security Context to be set on the cainjector component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder containerSecurityContext(SecurityContextArgs containerSecurityContext) { + return containerSecurityContext(Output.of(containerSecurityContext)); + } + + /** + * @param deploymentAnnotations Optional additional annotations to add to the cainjector Deployment + * + * @return builder + * + */ + public Builder deploymentAnnotations(@Nullable Output> deploymentAnnotations) { + $.deploymentAnnotations = deploymentAnnotations; + return this; + } + + /** + * @param deploymentAnnotations Optional additional annotations to add to the cainjector Deployment + * + * @return builder + * + */ + public Builder deploymentAnnotations(Map deploymentAnnotations) { + return deploymentAnnotations(Output.of(deploymentAnnotations)); + } + + /** + * @param extraArgs Optional additional arguments for cainjector + * + * @return builder + * + */ + public Builder extraArgs(@Nullable Output> extraArgs) { + $.extraArgs = extraArgs; + return this; + } + + /** + * @param extraArgs Optional additional arguments for cainjector + * + * @return builder + * + */ + public Builder extraArgs(List extraArgs) { + return extraArgs(Output.of(extraArgs)); + } + + /** + * @param extraArgs Optional additional arguments for cainjector + * + * @return builder + * + */ + public Builder extraArgs(String... extraArgs) { + return extraArgs(List.of(extraArgs)); + } + + public Builder image(@Nullable Output image) { + $.image = image; + return this; + } + + public Builder image(CertManagerImageArgs image) { + return image(Output.of(image)); + } + + public Builder nodeSelector(@Nullable Output> nodeSelector) { + $.nodeSelector = nodeSelector; + return this; + } + + public Builder nodeSelector(Map nodeSelector) { + return nodeSelector(Output.of(nodeSelector)); + } + + /** + * @param podAnnotations Optional additional annotations to add to the cainjector Pods + * + * @return builder + * + */ + public Builder podAnnotations(@Nullable Output> podAnnotations) { + $.podAnnotations = podAnnotations; + return this; + } + + /** + * @param podAnnotations Optional additional annotations to add to the cainjector Pods + * + * @return builder + * + */ + public Builder podAnnotations(Map podAnnotations) { + return podAnnotations(Output.of(podAnnotations)); + } + + /** + * @param podLabels Optional additional labels to add to the Webhook Pods + * + * @return builder + * + */ + public Builder podLabels(@Nullable Output> podLabels) { + $.podLabels = podLabels; + return this; + } + + /** + * @param podLabels Optional additional labels to add to the Webhook Pods + * + * @return builder + * + */ + public Builder podLabels(Map podLabels) { + return podLabels(Output.of(podLabels)); + } + + /** + * @param podSecurityContext Pod Security Context to be set on the cainjector component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder podSecurityContext(@Nullable Output podSecurityContext) { + $.podSecurityContext = podSecurityContext; + return this; + } + + /** + * @param podSecurityContext Pod Security Context to be set on the cainjector component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder podSecurityContext(PodSecurityContextArgs podSecurityContext) { + return podSecurityContext(Output.of(podSecurityContext)); + } + + public Builder replicaCount(@Nullable Output replicaCount) { + $.replicaCount = replicaCount; + return this; + } + + public Builder replicaCount(Integer replicaCount) { + return replicaCount(Output.of(replicaCount)); + } + + public Builder resources(@Nullable Output resources) { + $.resources = resources; + return this; + } + + public Builder resources(ResourceRequirementsArgs resources) { + return resources(Output.of(resources)); + } + + public Builder serviceAccount(@Nullable Output serviceAccount) { + $.serviceAccount = serviceAccount; + return this; + } + + public Builder serviceAccount(CertManagerServiceAccountArgs serviceAccount) { + return serviceAccount(Output.of(serviceAccount)); + } + + public Builder strategy(@Nullable Output strategy) { + $.strategy = strategy; + return this; + } + + public Builder strategy(DeploymentStrategyArgs strategy) { + return strategy(Output.of(strategy)); + } + + public Builder timeoutSeconds(@Nullable Output timeoutSeconds) { + $.timeoutSeconds = timeoutSeconds; + return this; + } + + public Builder timeoutSeconds(Integer timeoutSeconds) { + return timeoutSeconds(Output.of(timeoutSeconds)); + } + + public Builder tolerations(@Nullable Output> tolerations) { + $.tolerations = tolerations; + return this; + } + + public Builder tolerations(List tolerations) { + return tolerations(Output.of(tolerations)); + } + + public Builder tolerations(TolerationArgs... tolerations) { + return tolerations(List.of(tolerations)); + } + + public CertManagerCaInjectorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalArgs.java new file mode 100644 index 0000000..59f6e39 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalArgs.java @@ -0,0 +1,224 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.core.v1.inputs.LocalObjectReferenceArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerGlobalLeaderElectionArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerGlobalPodSecurityPolicyArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerGlobalRbacArgs; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerGlobalArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerGlobalArgs Empty = new CertManagerGlobalArgs(); + + /** + * Reference to one or more secrets to be used when pulling images. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + * + */ + @Import(name="imagePullSecrets") + private @Nullable Output> imagePullSecrets; + + /** + * @return Reference to one or more secrets to be used when pulling images. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + * + */ + public Optional>> imagePullSecrets() { + return Optional.ofNullable(this.imagePullSecrets); + } + + @Import(name="leaderElection") + private @Nullable Output leaderElection; + + public Optional> leaderElection() { + return Optional.ofNullable(this.leaderElection); + } + + /** + * Set the verbosity of cert-manager. Range of 0 - 6 with 6 being the most verbose. + * + */ + @Import(name="logLevel") + private @Nullable Output logLevel; + + /** + * @return Set the verbosity of cert-manager. Range of 0 - 6 with 6 being the most verbose. + * + */ + public Optional> logLevel() { + return Optional.ofNullable(this.logLevel); + } + + @Import(name="podSecurityPolicy") + private @Nullable Output podSecurityPolicy; + + public Optional> podSecurityPolicy() { + return Optional.ofNullable(this.podSecurityPolicy); + } + + /** + * Optional priority class to be used for the cert-manager pods. + * + */ + @Import(name="priorityClassName") + private @Nullable Output priorityClassName; + + /** + * @return Optional priority class to be used for the cert-manager pods. + * + */ + public Optional> priorityClassName() { + return Optional.ofNullable(this.priorityClassName); + } + + @Import(name="rbac") + private @Nullable Output rbac; + + public Optional> rbac() { + return Optional.ofNullable(this.rbac); + } + + private CertManagerGlobalArgs() {} + + private CertManagerGlobalArgs(CertManagerGlobalArgs $) { + this.imagePullSecrets = $.imagePullSecrets; + this.leaderElection = $.leaderElection; + this.logLevel = $.logLevel; + this.podSecurityPolicy = $.podSecurityPolicy; + this.priorityClassName = $.priorityClassName; + this.rbac = $.rbac; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerGlobalArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerGlobalArgs $; + + public Builder() { + $ = new CertManagerGlobalArgs(); + } + + public Builder(CertManagerGlobalArgs defaults) { + $ = new CertManagerGlobalArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param imagePullSecrets Reference to one or more secrets to be used when pulling images. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + * + * @return builder + * + */ + public Builder imagePullSecrets(@Nullable Output> imagePullSecrets) { + $.imagePullSecrets = imagePullSecrets; + return this; + } + + /** + * @param imagePullSecrets Reference to one or more secrets to be used when pulling images. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + * + * @return builder + * + */ + public Builder imagePullSecrets(List imagePullSecrets) { + return imagePullSecrets(Output.of(imagePullSecrets)); + } + + /** + * @param imagePullSecrets Reference to one or more secrets to be used when pulling images. ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + * + * @return builder + * + */ + public Builder imagePullSecrets(LocalObjectReferenceArgs... imagePullSecrets) { + return imagePullSecrets(List.of(imagePullSecrets)); + } + + public Builder leaderElection(@Nullable Output leaderElection) { + $.leaderElection = leaderElection; + return this; + } + + public Builder leaderElection(CertManagerGlobalLeaderElectionArgs leaderElection) { + return leaderElection(Output.of(leaderElection)); + } + + /** + * @param logLevel Set the verbosity of cert-manager. Range of 0 - 6 with 6 being the most verbose. + * + * @return builder + * + */ + public Builder logLevel(@Nullable Output logLevel) { + $.logLevel = logLevel; + return this; + } + + /** + * @param logLevel Set the verbosity of cert-manager. Range of 0 - 6 with 6 being the most verbose. + * + * @return builder + * + */ + public Builder logLevel(Integer logLevel) { + return logLevel(Output.of(logLevel)); + } + + public Builder podSecurityPolicy(@Nullable Output podSecurityPolicy) { + $.podSecurityPolicy = podSecurityPolicy; + return this; + } + + public Builder podSecurityPolicy(CertManagerGlobalPodSecurityPolicyArgs podSecurityPolicy) { + return podSecurityPolicy(Output.of(podSecurityPolicy)); + } + + /** + * @param priorityClassName Optional priority class to be used for the cert-manager pods. + * + * @return builder + * + */ + public Builder priorityClassName(@Nullable Output priorityClassName) { + $.priorityClassName = priorityClassName; + return this; + } + + /** + * @param priorityClassName Optional priority class to be used for the cert-manager pods. + * + * @return builder + * + */ + public Builder priorityClassName(String priorityClassName) { + return priorityClassName(Output.of(priorityClassName)); + } + + public Builder rbac(@Nullable Output rbac) { + $.rbac = rbac; + return this; + } + + public Builder rbac(CertManagerGlobalRbacArgs rbac) { + return rbac(Output.of(rbac)); + } + + public CertManagerGlobalArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalLeaderElectionArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalLeaderElectionArgs.java new file mode 100644 index 0000000..ac06375 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalLeaderElectionArgs.java @@ -0,0 +1,157 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerGlobalLeaderElectionArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerGlobalLeaderElectionArgs Empty = new CertManagerGlobalLeaderElectionArgs(); + + /** + * The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. + * + */ + @Import(name="leaseDuration") + private @Nullable Output leaseDuration; + + /** + * @return The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. + * + */ + public Optional> leaseDuration() { + return Optional.ofNullable(this.leaseDuration); + } + + /** + * Override the namespace used to store the ConfigMap for leader election. + * + */ + @Import(name="namespace") + private @Nullable Output namespace; + + /** + * @return Override the namespace used to store the ConfigMap for leader election. + * + */ + public Optional> namespace() { + return Optional.ofNullable(this.namespace); + } + + /** + * The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. + * + */ + @Import(name="renewDeadline") + private @Nullable Output renewDeadline; + + /** + * @return The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. + * + */ + public Optional> renewDeadline() { + return Optional.ofNullable(this.renewDeadline); + } + + private CertManagerGlobalLeaderElectionArgs() {} + + private CertManagerGlobalLeaderElectionArgs(CertManagerGlobalLeaderElectionArgs $) { + this.leaseDuration = $.leaseDuration; + this.namespace = $.namespace; + this.renewDeadline = $.renewDeadline; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerGlobalLeaderElectionArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerGlobalLeaderElectionArgs $; + + public Builder() { + $ = new CertManagerGlobalLeaderElectionArgs(); + } + + public Builder(CertManagerGlobalLeaderElectionArgs defaults) { + $ = new CertManagerGlobalLeaderElectionArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param leaseDuration The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. + * + * @return builder + * + */ + public Builder leaseDuration(@Nullable Output leaseDuration) { + $.leaseDuration = leaseDuration; + return this; + } + + /** + * @param leaseDuration The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. + * + * @return builder + * + */ + public Builder leaseDuration(String leaseDuration) { + return leaseDuration(Output.of(leaseDuration)); + } + + /** + * @param namespace Override the namespace used to store the ConfigMap for leader election. + * + * @return builder + * + */ + public Builder namespace(@Nullable Output namespace) { + $.namespace = namespace; + return this; + } + + /** + * @param namespace Override the namespace used to store the ConfigMap for leader election. + * + * @return builder + * + */ + public Builder namespace(String namespace) { + return namespace(Output.of(namespace)); + } + + /** + * @param renewDeadline The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. + * + * @return builder + * + */ + public Builder renewDeadline(@Nullable Output renewDeadline) { + $.renewDeadline = renewDeadline; + return this; + } + + /** + * @param renewDeadline The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. + * + * @return builder + * + */ + public Builder renewDeadline(String renewDeadline) { + return renewDeadline(Output.of(renewDeadline)); + } + + public CertManagerGlobalLeaderElectionArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalPodSecurityPolicyArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalPodSecurityPolicyArgs.java new file mode 100644 index 0000000..3de514c --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalPodSecurityPolicyArgs.java @@ -0,0 +1,80 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerGlobalPodSecurityPolicyArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerGlobalPodSecurityPolicyArgs Empty = new CertManagerGlobalPodSecurityPolicyArgs(); + + @Import(name="enabled") + private @Nullable Output enabled; + + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + @Import(name="useAppArmor") + private @Nullable Output useAppArmor; + + public Optional> useAppArmor() { + return Optional.ofNullable(this.useAppArmor); + } + + private CertManagerGlobalPodSecurityPolicyArgs() {} + + private CertManagerGlobalPodSecurityPolicyArgs(CertManagerGlobalPodSecurityPolicyArgs $) { + this.enabled = $.enabled; + this.useAppArmor = $.useAppArmor; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerGlobalPodSecurityPolicyArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerGlobalPodSecurityPolicyArgs $; + + public Builder() { + $ = new CertManagerGlobalPodSecurityPolicyArgs(); + } + + public Builder(CertManagerGlobalPodSecurityPolicyArgs defaults) { + $ = new CertManagerGlobalPodSecurityPolicyArgs(Objects.requireNonNull(defaults)); + } + + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public Builder useAppArmor(@Nullable Output useAppArmor) { + $.useAppArmor = useAppArmor; + return this; + } + + public Builder useAppArmor(Boolean useAppArmor) { + return useAppArmor(Output.of(useAppArmor)); + } + + public CertManagerGlobalPodSecurityPolicyArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalRbacArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalRbacArgs.java new file mode 100644 index 0000000..33e640f --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerGlobalRbacArgs.java @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerGlobalRbacArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerGlobalRbacArgs Empty = new CertManagerGlobalRbacArgs(); + + @Import(name="create") + private @Nullable Output create; + + public Optional> create() { + return Optional.ofNullable(this.create); + } + + private CertManagerGlobalRbacArgs() {} + + private CertManagerGlobalRbacArgs(CertManagerGlobalRbacArgs $) { + this.create = $.create; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerGlobalRbacArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerGlobalRbacArgs $; + + public Builder() { + $ = new CertManagerGlobalRbacArgs(); + } + + public Builder(CertManagerGlobalRbacArgs defaults) { + $ = new CertManagerGlobalRbacArgs(Objects.requireNonNull(defaults)); + } + + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + public Builder create(Boolean create) { + return create(Output.of(create)); + } + + public CertManagerGlobalRbacArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerImageArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerImageArgs.java new file mode 100644 index 0000000..3ee8ae4 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerImageArgs.java @@ -0,0 +1,211 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerImageArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerImageArgs Empty = new CertManagerImageArgs(); + + /** + * Setting a digest will override any tag, e.g. `digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20`. + * + */ + @Import(name="digest") + private @Nullable Output digest; + + /** + * @return Setting a digest will override any tag, e.g. `digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20`. + * + */ + public Optional> digest() { + return Optional.ofNullable(this.digest); + } + + @Import(name="pullPolicy") + private @Nullable Output pullPolicy; + + public Optional> pullPolicy() { + return Optional.ofNullable(this.pullPolicy); + } + + /** + * You can manage a registry with `registry: quay.io`. + * + */ + @Import(name="registry") + private @Nullable Output registry; + + /** + * @return You can manage a registry with `registry: quay.io`. + * + */ + public Optional> registry() { + return Optional.ofNullable(this.registry); + } + + /** + * You can manage a registry with `repository: jetstack/cert-manager-controller`. + * + */ + @Import(name="repository") + private @Nullable Output repository; + + /** + * @return You can manage a registry with `repository: jetstack/cert-manager-controller`. + * + */ + public Optional> repository() { + return Optional.ofNullable(this.repository); + } + + /** + * Override the image tag to deploy by setting this variable. If no value is set, the chart's appVersion will be used. + * + */ + @Import(name="tag") + private @Nullable Output tag; + + /** + * @return Override the image tag to deploy by setting this variable. If no value is set, the chart's appVersion will be used. + * + */ + public Optional> tag() { + return Optional.ofNullable(this.tag); + } + + private CertManagerImageArgs() {} + + private CertManagerImageArgs(CertManagerImageArgs $) { + this.digest = $.digest; + this.pullPolicy = $.pullPolicy; + this.registry = $.registry; + this.repository = $.repository; + this.tag = $.tag; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerImageArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerImageArgs $; + + public Builder() { + $ = new CertManagerImageArgs(); + } + + public Builder(CertManagerImageArgs defaults) { + $ = new CertManagerImageArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param digest Setting a digest will override any tag, e.g. `digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20`. + * + * @return builder + * + */ + public Builder digest(@Nullable Output digest) { + $.digest = digest; + return this; + } + + /** + * @param digest Setting a digest will override any tag, e.g. `digest: sha256:0e072dddd1f7f8fc8909a2ca6f65e76c5f0d2fcfb8be47935ae3457e8bbceb20`. + * + * @return builder + * + */ + public Builder digest(String digest) { + return digest(Output.of(digest)); + } + + public Builder pullPolicy(@Nullable Output pullPolicy) { + $.pullPolicy = pullPolicy; + return this; + } + + public Builder pullPolicy(String pullPolicy) { + return pullPolicy(Output.of(pullPolicy)); + } + + /** + * @param registry You can manage a registry with `registry: quay.io`. + * + * @return builder + * + */ + public Builder registry(@Nullable Output registry) { + $.registry = registry; + return this; + } + + /** + * @param registry You can manage a registry with `registry: quay.io`. + * + * @return builder + * + */ + public Builder registry(String registry) { + return registry(Output.of(registry)); + } + + /** + * @param repository You can manage a registry with `repository: jetstack/cert-manager-controller`. + * + * @return builder + * + */ + public Builder repository(@Nullable Output repository) { + $.repository = repository; + return this; + } + + /** + * @param repository You can manage a registry with `repository: jetstack/cert-manager-controller`. + * + * @return builder + * + */ + public Builder repository(String repository) { + return repository(Output.of(repository)); + } + + /** + * @param tag Override the image tag to deploy by setting this variable. If no value is set, the chart's appVersion will be used. + * + * @return builder + * + */ + public Builder tag(@Nullable Output tag) { + $.tag = tag; + return this; + } + + /** + * @param tag Override the image tag to deploy by setting this variable. If no value is set, the chart's appVersion will be used. + * + * @return builder + * + */ + public Builder tag(String tag) { + return tag(Output.of(tag)); + } + + public CertManagerImageArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerIngressShimArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerIngressShimArgs.java new file mode 100644 index 0000000..8f8d116 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerIngressShimArgs.java @@ -0,0 +1,97 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerIngressShimArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerIngressShimArgs Empty = new CertManagerIngressShimArgs(); + + @Import(name="defaultIssuerGroup") + private @Nullable Output defaultIssuerGroup; + + public Optional> defaultIssuerGroup() { + return Optional.ofNullable(this.defaultIssuerGroup); + } + + @Import(name="defaultIssuerKind") + private @Nullable Output defaultIssuerKind; + + public Optional> defaultIssuerKind() { + return Optional.ofNullable(this.defaultIssuerKind); + } + + @Import(name="defaultIssuerName") + private @Nullable Output defaultIssuerName; + + public Optional> defaultIssuerName() { + return Optional.ofNullable(this.defaultIssuerName); + } + + private CertManagerIngressShimArgs() {} + + private CertManagerIngressShimArgs(CertManagerIngressShimArgs $) { + this.defaultIssuerGroup = $.defaultIssuerGroup; + this.defaultIssuerKind = $.defaultIssuerKind; + this.defaultIssuerName = $.defaultIssuerName; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerIngressShimArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerIngressShimArgs $; + + public Builder() { + $ = new CertManagerIngressShimArgs(); + } + + public Builder(CertManagerIngressShimArgs defaults) { + $ = new CertManagerIngressShimArgs(Objects.requireNonNull(defaults)); + } + + public Builder defaultIssuerGroup(@Nullable Output defaultIssuerGroup) { + $.defaultIssuerGroup = defaultIssuerGroup; + return this; + } + + public Builder defaultIssuerGroup(String defaultIssuerGroup) { + return defaultIssuerGroup(Output.of(defaultIssuerGroup)); + } + + public Builder defaultIssuerKind(@Nullable Output defaultIssuerKind) { + $.defaultIssuerKind = defaultIssuerKind; + return this; + } + + public Builder defaultIssuerKind(String defaultIssuerKind) { + return defaultIssuerKind(Output.of(defaultIssuerKind)); + } + + public Builder defaultIssuerName(@Nullable Output defaultIssuerName) { + $.defaultIssuerName = defaultIssuerName; + return this; + } + + public Builder defaultIssuerName(String defaultIssuerName) { + return defaultIssuerName(Output.of(defaultIssuerName)); + } + + public CertManagerIngressShimArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerPrometheusArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerPrometheusArgs.java new file mode 100644 index 0000000..716e502 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerPrometheusArgs.java @@ -0,0 +1,81 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetescertmanager.inputs.CertManagerPrometheusServiceMonitorArgs; +import java.lang.Boolean; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerPrometheusArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerPrometheusArgs Empty = new CertManagerPrometheusArgs(); + + @Import(name="enabled") + private @Nullable Output enabled; + + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + @Import(name="serviceMonitor") + private @Nullable Output serviceMonitor; + + public Optional> serviceMonitor() { + return Optional.ofNullable(this.serviceMonitor); + } + + private CertManagerPrometheusArgs() {} + + private CertManagerPrometheusArgs(CertManagerPrometheusArgs $) { + this.enabled = $.enabled; + this.serviceMonitor = $.serviceMonitor; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerPrometheusArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerPrometheusArgs $; + + public Builder() { + $ = new CertManagerPrometheusArgs(); + } + + public Builder(CertManagerPrometheusArgs defaults) { + $ = new CertManagerPrometheusArgs(Objects.requireNonNull(defaults)); + } + + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public Builder serviceMonitor(@Nullable Output serviceMonitor) { + $.serviceMonitor = serviceMonitor; + return this; + } + + public Builder serviceMonitor(CertManagerPrometheusServiceMonitorArgs serviceMonitor) { + return serviceMonitor(Output.of(serviceMonitor)); + } + + public CertManagerPrometheusArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerPrometheusServiceMonitorArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerPrometheusServiceMonitorArgs.java new file mode 100644 index 0000000..d612d72 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerPrometheusServiceMonitorArgs.java @@ -0,0 +1,168 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerPrometheusServiceMonitorArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerPrometheusServiceMonitorArgs Empty = new CertManagerPrometheusServiceMonitorArgs(); + + @Import(name="enabled") + private @Nullable Output enabled; + + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + @Import(name="interval") + private @Nullable Output interval; + + public Optional> interval() { + return Optional.ofNullable(this.interval); + } + + @Import(name="labels") + private @Nullable Output> labels; + + public Optional>> labels() { + return Optional.ofNullable(this.labels); + } + + @Import(name="path") + private @Nullable Output path; + + public Optional> path() { + return Optional.ofNullable(this.path); + } + + @Import(name="prometheusInstance") + private @Nullable Output prometheusInstance; + + public Optional> prometheusInstance() { + return Optional.ofNullable(this.prometheusInstance); + } + + @Import(name="string") + private @Nullable Output string; + + public Optional> string() { + return Optional.ofNullable(this.string); + } + + @Import(name="targetPort") + private @Nullable Output targetPort; + + public Optional> targetPort() { + return Optional.ofNullable(this.targetPort); + } + + private CertManagerPrometheusServiceMonitorArgs() {} + + private CertManagerPrometheusServiceMonitorArgs(CertManagerPrometheusServiceMonitorArgs $) { + this.enabled = $.enabled; + this.interval = $.interval; + this.labels = $.labels; + this.path = $.path; + this.prometheusInstance = $.prometheusInstance; + this.string = $.string; + this.targetPort = $.targetPort; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerPrometheusServiceMonitorArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerPrometheusServiceMonitorArgs $; + + public Builder() { + $ = new CertManagerPrometheusServiceMonitorArgs(); + } + + public Builder(CertManagerPrometheusServiceMonitorArgs defaults) { + $ = new CertManagerPrometheusServiceMonitorArgs(Objects.requireNonNull(defaults)); + } + + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + public Builder interval(@Nullable Output interval) { + $.interval = interval; + return this; + } + + public Builder interval(String interval) { + return interval(Output.of(interval)); + } + + public Builder labels(@Nullable Output> labels) { + $.labels = labels; + return this; + } + + public Builder labels(Map labels) { + return labels(Output.of(labels)); + } + + public Builder path(@Nullable Output path) { + $.path = path; + return this; + } + + public Builder path(String path) { + return path(Output.of(path)); + } + + public Builder prometheusInstance(@Nullable Output prometheusInstance) { + $.prometheusInstance = prometheusInstance; + return this; + } + + public Builder prometheusInstance(String prometheusInstance) { + return prometheusInstance(Output.of(prometheusInstance)); + } + + public Builder string(@Nullable Output string) { + $.string = string; + return this; + } + + public Builder string(String string) { + return string(Output.of(string)); + } + + public Builder targetPort(@Nullable Output targetPort) { + $.targetPort = targetPort; + return this; + } + + public Builder targetPort(Integer targetPort) { + return targetPort(Output.of(targetPort)); + } + + public CertManagerPrometheusServiceMonitorArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerServiceAccountArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerServiceAccountArgs.java new file mode 100644 index 0000000..b3fd9af --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerServiceAccountArgs.java @@ -0,0 +1,196 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.Boolean; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerServiceAccountArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerServiceAccountArgs Empty = new CertManagerServiceAccountArgs(); + + /** + * Optional additional annotations to add to the controller's ServiceAccount. + * + */ + @Import(name="annotations") + private @Nullable Output> annotations; + + /** + * @return Optional additional annotations to add to the controller's ServiceAccount. + * + */ + public Optional>> annotations() { + return Optional.ofNullable(this.annotations); + } + + /** + * Automount API credentials for a Service Account. + * + */ + @Import(name="automountServiceAccountToken") + private @Nullable Output automountServiceAccountToken; + + /** + * @return Automount API credentials for a Service Account. + * + */ + public Optional> automountServiceAccountToken() { + return Optional.ofNullable(this.automountServiceAccountToken); + } + + /** + * Specifies whether a service account should be created + * + */ + @Import(name="create") + private @Nullable Output create; + + /** + * @return Specifies whether a service account should be created + * + */ + public Optional> create() { + return Optional.ofNullable(this.create); + } + + /** + * The name of the service account to use. If not set and create is true, a name is generated using the fullname template. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return The name of the service account to use. If not set and create is true, a name is generated using the fullname template. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + private CertManagerServiceAccountArgs() {} + + private CertManagerServiceAccountArgs(CertManagerServiceAccountArgs $) { + this.annotations = $.annotations; + this.automountServiceAccountToken = $.automountServiceAccountToken; + this.create = $.create; + this.name = $.name; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerServiceAccountArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerServiceAccountArgs $; + + public Builder() { + $ = new CertManagerServiceAccountArgs(); + } + + public Builder(CertManagerServiceAccountArgs defaults) { + $ = new CertManagerServiceAccountArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param annotations Optional additional annotations to add to the controller's ServiceAccount. + * + * @return builder + * + */ + public Builder annotations(@Nullable Output> annotations) { + $.annotations = annotations; + return this; + } + + /** + * @param annotations Optional additional annotations to add to the controller's ServiceAccount. + * + * @return builder + * + */ + public Builder annotations(Map annotations) { + return annotations(Output.of(annotations)); + } + + /** + * @param automountServiceAccountToken Automount API credentials for a Service Account. + * + * @return builder + * + */ + public Builder automountServiceAccountToken(@Nullable Output automountServiceAccountToken) { + $.automountServiceAccountToken = automountServiceAccountToken; + return this; + } + + /** + * @param automountServiceAccountToken Automount API credentials for a Service Account. + * + * @return builder + * + */ + public Builder automountServiceAccountToken(Boolean automountServiceAccountToken) { + return automountServiceAccountToken(Output.of(automountServiceAccountToken)); + } + + /** + * @param create Specifies whether a service account should be created + * + * @return builder + * + */ + public Builder create(@Nullable Output create) { + $.create = create; + return this; + } + + /** + * @param create Specifies whether a service account should be created + * + * @return builder + * + */ + public Builder create(Boolean create) { + return create(Output.of(create)); + } + + /** + * @param name The name of the service account to use. If not set and create is true, a name is generated using the fullname template. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name The name of the service account to use. If not set and create is true, a name is generated using the fullname template. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + public CertManagerServiceAccountArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerStartupAPICheckArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerStartupAPICheckArgs.java new file mode 100644 index 0000000..e8a9d91 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerStartupAPICheckArgs.java @@ -0,0 +1,466 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.core.v1.inputs.AffinityArgs; +import com.pulumi.kubernetes.core.v1.inputs.PodSecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.ResourceRequirementsArgs; +import com.pulumi.kubernetes.core.v1.inputs.TolerationArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerImageArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerServiceAccountArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerStartupAPICheckRBACArgs; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerStartupAPICheckArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerStartupAPICheckArgs Empty = new CertManagerStartupAPICheckArgs(); + + @Import(name="affinity") + private @Nullable Output affinity; + + public Optional> affinity() { + return Optional.ofNullable(this.affinity); + } + + /** + * Job backoffLimit + * + */ + @Import(name="backoffLimit") + private @Nullable Output backoffLimit; + + /** + * @return Job backoffLimit + * + */ + public Optional> backoffLimit() { + return Optional.ofNullable(this.backoffLimit); + } + + @Import(name="enabled") + private @Nullable Output enabled; + + public Optional> enabled() { + return Optional.ofNullable(this.enabled); + } + + /** + * Optional additional arguments for startupapicheck + * + */ + @Import(name="extraArgs") + private @Nullable Output> extraArgs; + + /** + * @return Optional additional arguments for startupapicheck + * + */ + public Optional>> extraArgs() { + return Optional.ofNullable(this.extraArgs); + } + + @Import(name="image") + private @Nullable Output image; + + public Optional> image() { + return Optional.ofNullable(this.image); + } + + /** + * Optional additional annotations to add to the startupapicheck Job + * + */ + @Import(name="jobAnnotations") + private @Nullable Output> jobAnnotations; + + /** + * @return Optional additional annotations to add to the startupapicheck Job + * + */ + public Optional>> jobAnnotations() { + return Optional.ofNullable(this.jobAnnotations); + } + + @Import(name="nodeSelector") + private @Nullable Output> nodeSelector; + + public Optional>> nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + /** + * Optional additional annotations to add to the startupapicheck Pods + * + */ + @Import(name="podAnnotations") + private @Nullable Output> podAnnotations; + + /** + * @return Optional additional annotations to add to the startupapicheck Pods + * + */ + public Optional>> podAnnotations() { + return Optional.ofNullable(this.podAnnotations); + } + + /** + * Optional additional labels to add to the startupapicheck Pods + * + */ + @Import(name="podLabels") + private @Nullable Output> podLabels; + + /** + * @return Optional additional labels to add to the startupapicheck Pods + * + */ + public Optional>> podLabels() { + return Optional.ofNullable(this.podLabels); + } + + @Import(name="rbac") + private @Nullable Output rbac; + + public Optional> rbac() { + return Optional.ofNullable(this.rbac); + } + + @Import(name="resources") + private @Nullable Output resources; + + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * Pod Security Context to be set on the startupapicheck component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + @Import(name="securityContext") + private @Nullable Output securityContext; + + /** + * @return Pod Security Context to be set on the startupapicheck component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + public Optional> securityContext() { + return Optional.ofNullable(this.securityContext); + } + + @Import(name="serviceAccount") + private @Nullable Output serviceAccount; + + public Optional> serviceAccount() { + return Optional.ofNullable(this.serviceAccount); + } + + /** + * Timeout for 'kubectl check api' command + * + */ + @Import(name="timeout") + private @Nullable Output timeout; + + /** + * @return Timeout for 'kubectl check api' command + * + */ + public Optional> timeout() { + return Optional.ofNullable(this.timeout); + } + + @Import(name="tolerations") + private @Nullable Output> tolerations; + + public Optional>> tolerations() { + return Optional.ofNullable(this.tolerations); + } + + private CertManagerStartupAPICheckArgs() {} + + private CertManagerStartupAPICheckArgs(CertManagerStartupAPICheckArgs $) { + this.affinity = $.affinity; + this.backoffLimit = $.backoffLimit; + this.enabled = $.enabled; + this.extraArgs = $.extraArgs; + this.image = $.image; + this.jobAnnotations = $.jobAnnotations; + this.nodeSelector = $.nodeSelector; + this.podAnnotations = $.podAnnotations; + this.podLabels = $.podLabels; + this.rbac = $.rbac; + this.resources = $.resources; + this.securityContext = $.securityContext; + this.serviceAccount = $.serviceAccount; + this.timeout = $.timeout; + this.tolerations = $.tolerations; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerStartupAPICheckArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerStartupAPICheckArgs $; + + public Builder() { + $ = new CertManagerStartupAPICheckArgs(); + } + + public Builder(CertManagerStartupAPICheckArgs defaults) { + $ = new CertManagerStartupAPICheckArgs(Objects.requireNonNull(defaults)); + } + + public Builder affinity(@Nullable Output affinity) { + $.affinity = affinity; + return this; + } + + public Builder affinity(AffinityArgs affinity) { + return affinity(Output.of(affinity)); + } + + /** + * @param backoffLimit Job backoffLimit + * + * @return builder + * + */ + public Builder backoffLimit(@Nullable Output backoffLimit) { + $.backoffLimit = backoffLimit; + return this; + } + + /** + * @param backoffLimit Job backoffLimit + * + * @return builder + * + */ + public Builder backoffLimit(Integer backoffLimit) { + return backoffLimit(Output.of(backoffLimit)); + } + + public Builder enabled(@Nullable Output enabled) { + $.enabled = enabled; + return this; + } + + public Builder enabled(Boolean enabled) { + return enabled(Output.of(enabled)); + } + + /** + * @param extraArgs Optional additional arguments for startupapicheck + * + * @return builder + * + */ + public Builder extraArgs(@Nullable Output> extraArgs) { + $.extraArgs = extraArgs; + return this; + } + + /** + * @param extraArgs Optional additional arguments for startupapicheck + * + * @return builder + * + */ + public Builder extraArgs(List extraArgs) { + return extraArgs(Output.of(extraArgs)); + } + + /** + * @param extraArgs Optional additional arguments for startupapicheck + * + * @return builder + * + */ + public Builder extraArgs(String... extraArgs) { + return extraArgs(List.of(extraArgs)); + } + + public Builder image(@Nullable Output image) { + $.image = image; + return this; + } + + public Builder image(CertManagerImageArgs image) { + return image(Output.of(image)); + } + + /** + * @param jobAnnotations Optional additional annotations to add to the startupapicheck Job + * + * @return builder + * + */ + public Builder jobAnnotations(@Nullable Output> jobAnnotations) { + $.jobAnnotations = jobAnnotations; + return this; + } + + /** + * @param jobAnnotations Optional additional annotations to add to the startupapicheck Job + * + * @return builder + * + */ + public Builder jobAnnotations(Map jobAnnotations) { + return jobAnnotations(Output.of(jobAnnotations)); + } + + public Builder nodeSelector(@Nullable Output> nodeSelector) { + $.nodeSelector = nodeSelector; + return this; + } + + public Builder nodeSelector(Map nodeSelector) { + return nodeSelector(Output.of(nodeSelector)); + } + + /** + * @param podAnnotations Optional additional annotations to add to the startupapicheck Pods + * + * @return builder + * + */ + public Builder podAnnotations(@Nullable Output> podAnnotations) { + $.podAnnotations = podAnnotations; + return this; + } + + /** + * @param podAnnotations Optional additional annotations to add to the startupapicheck Pods + * + * @return builder + * + */ + public Builder podAnnotations(Map podAnnotations) { + return podAnnotations(Output.of(podAnnotations)); + } + + /** + * @param podLabels Optional additional labels to add to the startupapicheck Pods + * + * @return builder + * + */ + public Builder podLabels(@Nullable Output> podLabels) { + $.podLabels = podLabels; + return this; + } + + /** + * @param podLabels Optional additional labels to add to the startupapicheck Pods + * + * @return builder + * + */ + public Builder podLabels(Map podLabels) { + return podLabels(Output.of(podLabels)); + } + + public Builder rbac(@Nullable Output rbac) { + $.rbac = rbac; + return this; + } + + public Builder rbac(CertManagerStartupAPICheckRBACArgs rbac) { + return rbac(Output.of(rbac)); + } + + public Builder resources(@Nullable Output resources) { + $.resources = resources; + return this; + } + + public Builder resources(ResourceRequirementsArgs resources) { + return resources(Output.of(resources)); + } + + /** + * @param securityContext Pod Security Context to be set on the startupapicheck component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder securityContext(@Nullable Output securityContext) { + $.securityContext = securityContext; + return this; + } + + /** + * @param securityContext Pod Security Context to be set on the startupapicheck component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder securityContext(PodSecurityContextArgs securityContext) { + return securityContext(Output.of(securityContext)); + } + + public Builder serviceAccount(@Nullable Output serviceAccount) { + $.serviceAccount = serviceAccount; + return this; + } + + public Builder serviceAccount(CertManagerServiceAccountArgs serviceAccount) { + return serviceAccount(Output.of(serviceAccount)); + } + + /** + * @param timeout Timeout for 'kubectl check api' command + * + * @return builder + * + */ + public Builder timeout(@Nullable Output timeout) { + $.timeout = timeout; + return this; + } + + /** + * @param timeout Timeout for 'kubectl check api' command + * + * @return builder + * + */ + public Builder timeout(String timeout) { + return timeout(Output.of(timeout)); + } + + public Builder tolerations(@Nullable Output> tolerations) { + $.tolerations = tolerations; + return this; + } + + public Builder tolerations(List tolerations) { + return tolerations(Output.of(tolerations)); + } + + public Builder tolerations(TolerationArgs... tolerations) { + return tolerations(List.of(tolerations)); + } + + public CertManagerStartupAPICheckArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerStartupAPICheckRBACArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerStartupAPICheckRBACArgs.java new file mode 100644 index 0000000..2424927 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerStartupAPICheckRBACArgs.java @@ -0,0 +1,84 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerStartupAPICheckRBACArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerStartupAPICheckRBACArgs Empty = new CertManagerStartupAPICheckRBACArgs(); + + /** + * annotations for the startup API Check job RBAC and PSP resources + * + */ + @Import(name="annotations") + private @Nullable Output> annotations; + + /** + * @return annotations for the startup API Check job RBAC and PSP resources + * + */ + public Optional>> annotations() { + return Optional.ofNullable(this.annotations); + } + + private CertManagerStartupAPICheckRBACArgs() {} + + private CertManagerStartupAPICheckRBACArgs(CertManagerStartupAPICheckRBACArgs $) { + this.annotations = $.annotations; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerStartupAPICheckRBACArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerStartupAPICheckRBACArgs $; + + public Builder() { + $ = new CertManagerStartupAPICheckRBACArgs(); + } + + public Builder(CertManagerStartupAPICheckRBACArgs defaults) { + $ = new CertManagerStartupAPICheckRBACArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param annotations annotations for the startup API Check job RBAC and PSP resources + * + * @return builder + * + */ + public Builder annotations(@Nullable Output> annotations) { + $.annotations = annotations; + return this; + } + + /** + * @param annotations annotations for the startup API Check job RBAC and PSP resources + * + * @return builder + * + */ + public Builder annotations(Map annotations) { + return annotations(Output.of(annotations)); + } + + public CertManagerStartupAPICheckRBACArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerWebhookArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerWebhookArgs.java new file mode 100644 index 0000000..52fb269 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerWebhookArgs.java @@ -0,0 +1,836 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetes.apps.v1.inputs.DeploymentStrategyArgs; +import com.pulumi.kubernetes.core.v1.inputs.AffinityArgs; +import com.pulumi.kubernetes.core.v1.inputs.PodSecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.ProbeArgs; +import com.pulumi.kubernetes.core.v1.inputs.ResourceRequirementsArgs; +import com.pulumi.kubernetes.core.v1.inputs.SecurityContextArgs; +import com.pulumi.kubernetes.core.v1.inputs.TolerationArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerImageArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerServiceAccountArgs; +import com.pulumi.kubernetescertmanager.inputs.CertManagerWebhookURLArgs; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerWebhookArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerWebhookArgs Empty = new CertManagerWebhookArgs(); + + @Import(name="affinity") + private @Nullable Output affinity; + + public Optional> affinity() { + return Optional.ofNullable(this.affinity); + } + + /** + * Container Security Context to be set on the webhook component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + @Import(name="containerSecurityContext") + private @Nullable Output containerSecurityContext; + + /** + * @return Container Security Context to be set on the webhook component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + public Optional> containerSecurityContext() { + return Optional.ofNullable(this.containerSecurityContext); + } + + /** + * Optional additional annotations to add to the webhook Deployment + * + */ + @Import(name="deploymentAnnotations") + private @Nullable Output> deploymentAnnotations; + + /** + * @return Optional additional annotations to add to the webhook Deployment + * + */ + public Optional>> deploymentAnnotations() { + return Optional.ofNullable(this.deploymentAnnotations); + } + + /** + * Optional additional arguments for webhook + * + */ + @Import(name="extraArgs") + private @Nullable Output> extraArgs; + + /** + * @return Optional additional arguments for webhook + * + */ + public Optional>> extraArgs() { + return Optional.ofNullable(this.extraArgs); + } + + /** + * Specifies if the webhook should be started in hostNetwork mode. Required for use in some managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working Since the default port for the webhook conflicts with kubelet on the host network, `webhook.securePort` should be changed to an available port if running in hostNetwork mode. + * + */ + @Import(name="hostNetwork") + private @Nullable Output hostNetwork; + + /** + * @return Specifies if the webhook should be started in hostNetwork mode. Required for use in some managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working Since the default port for the webhook conflicts with kubelet on the host network, `webhook.securePort` should be changed to an available port if running in hostNetwork mode. + * + */ + public Optional> hostNetwork() { + return Optional.ofNullable(this.hostNetwork); + } + + @Import(name="image") + private @Nullable Output image; + + public Optional> image() { + return Optional.ofNullable(this.image); + } + + /** + * Liveness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + */ + @Import(name="livenessProbe") + private @Nullable Output livenessProbe; + + /** + * @return Liveness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + */ + public Optional> livenessProbe() { + return Optional.ofNullable(this.livenessProbe); + } + + @Import(name="loadBalancerIP") + private @Nullable Output loadBalancerIP; + + public Optional> loadBalancerIP() { + return Optional.ofNullable(this.loadBalancerIP); + } + + /** + * Optional additional annotations to add to the webhook MutatingWebhookConfiguration + * + */ + @Import(name="mutatingWebhookConfigurationAnnotations") + private @Nullable Output> mutatingWebhookConfigurationAnnotations; + + /** + * @return Optional additional annotations to add to the webhook MutatingWebhookConfiguration + * + */ + public Optional>> mutatingWebhookConfigurationAnnotations() { + return Optional.ofNullable(this.mutatingWebhookConfigurationAnnotations); + } + + @Import(name="nodeSelector") + private @Nullable Output> nodeSelector; + + public Optional>> nodeSelector() { + return Optional.ofNullable(this.nodeSelector); + } + + /** + * Optional additional annotations to add to the webhook Pods + * + */ + @Import(name="podAnnotations") + private @Nullable Output> podAnnotations; + + /** + * @return Optional additional annotations to add to the webhook Pods + * + */ + public Optional>> podAnnotations() { + return Optional.ofNullable(this.podAnnotations); + } + + /** + * Optional additional labels to add to the Webhook Pods + * + */ + @Import(name="podLabels") + private @Nullable Output> podLabels; + + /** + * @return Optional additional labels to add to the Webhook Pods + * + */ + public Optional>> podLabels() { + return Optional.ofNullable(this.podLabels); + } + + /** + * Readiness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + */ + @Import(name="readinessProbe") + private @Nullable Output readinessProbe; + + /** + * @return Readiness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + */ + public Optional> readinessProbe() { + return Optional.ofNullable(this.readinessProbe); + } + + @Import(name="replicaCount") + private @Nullable Output replicaCount; + + public Optional> replicaCount() { + return Optional.ofNullable(this.replicaCount); + } + + @Import(name="resources") + private @Nullable Output resources; + + public Optional> resources() { + return Optional.ofNullable(this.resources); + } + + /** + * The port that the webhook should listen on for requests. In GKE private clusters, by default kubernetes apiservers are allowed to talk to the cluster nodes only on 443 and 10250. so configuring securePort: 10250, will work out of the box without needing to add firewall rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000 + * + */ + @Import(name="securePort") + private @Nullable Output securePort; + + /** + * @return The port that the webhook should listen on for requests. In GKE private clusters, by default kubernetes apiservers are allowed to talk to the cluster nodes only on 443 and 10250. so configuring securePort: 10250, will work out of the box without needing to add firewall rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000 + * + */ + public Optional> securePort() { + return Optional.ofNullable(this.securePort); + } + + /** + * Pod Security Context to be set on the webhook component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + @Import(name="securityContext") + private @Nullable Output securityContext; + + /** + * @return Pod Security Context to be set on the webhook component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + */ + public Optional> securityContext() { + return Optional.ofNullable(this.securityContext); + } + + @Import(name="serviceAccount") + private @Nullable Output serviceAccount; + + public Optional> serviceAccount() { + return Optional.ofNullable(this.serviceAccount); + } + + /** + * Optional additional annotations to add to the webhook service + * + */ + @Import(name="serviceAnnotations") + private @Nullable Output> serviceAnnotations; + + /** + * @return Optional additional annotations to add to the webhook service + * + */ + public Optional>> serviceAnnotations() { + return Optional.ofNullable(this.serviceAnnotations); + } + + /** + * Optional additional labels to add to the Webhook Service + * + */ + @Import(name="serviceLabels") + private @Nullable Output> serviceLabels; + + /** + * @return Optional additional labels to add to the Webhook Service + * + */ + public Optional>> serviceLabels() { + return Optional.ofNullable(this.serviceLabels); + } + + /** + * Specifies how the service should be handled. Useful if you want to expose the webhook to outside of the cluster. In some cases, the control plane cannot reach internal services. + * + */ + @Import(name="serviceType") + private @Nullable Output serviceType; + + /** + * @return Specifies how the service should be handled. Useful if you want to expose the webhook to outside of the cluster. In some cases, the control plane cannot reach internal services. + * + */ + public Optional> serviceType() { + return Optional.ofNullable(this.serviceType); + } + + @Import(name="strategy") + private @Nullable Output strategy; + + public Optional> strategy() { + return Optional.ofNullable(this.strategy); + } + + @Import(name="timeoutSeconds") + private @Nullable Output timeoutSeconds; + + public Optional> timeoutSeconds() { + return Optional.ofNullable(this.timeoutSeconds); + } + + @Import(name="tolerations") + private @Nullable Output> tolerations; + + public Optional>> tolerations() { + return Optional.ofNullable(this.tolerations); + } + + /** + * Overrides the mutating webhook and validating webhook so they reach the webhook service using the `url` field instead of a service. + * + */ + @Import(name="url") + private @Nullable Output url; + + /** + * @return Overrides the mutating webhook and validating webhook so they reach the webhook service using the `url` field instead of a service. + * + */ + public Optional> url() { + return Optional.ofNullable(this.url); + } + + /** + * Optional additional annotations to add to the webhook ValidatingWebhookConfiguration + * + */ + @Import(name="validatingWebhookConfigurationAnnotations") + private @Nullable Output> validatingWebhookConfigurationAnnotations; + + /** + * @return Optional additional annotations to add to the webhook ValidatingWebhookConfiguration + * + */ + public Optional>> validatingWebhookConfigurationAnnotations() { + return Optional.ofNullable(this.validatingWebhookConfigurationAnnotations); + } + + private CertManagerWebhookArgs() {} + + private CertManagerWebhookArgs(CertManagerWebhookArgs $) { + this.affinity = $.affinity; + this.containerSecurityContext = $.containerSecurityContext; + this.deploymentAnnotations = $.deploymentAnnotations; + this.extraArgs = $.extraArgs; + this.hostNetwork = $.hostNetwork; + this.image = $.image; + this.livenessProbe = $.livenessProbe; + this.loadBalancerIP = $.loadBalancerIP; + this.mutatingWebhookConfigurationAnnotations = $.mutatingWebhookConfigurationAnnotations; + this.nodeSelector = $.nodeSelector; + this.podAnnotations = $.podAnnotations; + this.podLabels = $.podLabels; + this.readinessProbe = $.readinessProbe; + this.replicaCount = $.replicaCount; + this.resources = $.resources; + this.securePort = $.securePort; + this.securityContext = $.securityContext; + this.serviceAccount = $.serviceAccount; + this.serviceAnnotations = $.serviceAnnotations; + this.serviceLabels = $.serviceLabels; + this.serviceType = $.serviceType; + this.strategy = $.strategy; + this.timeoutSeconds = $.timeoutSeconds; + this.tolerations = $.tolerations; + this.url = $.url; + this.validatingWebhookConfigurationAnnotations = $.validatingWebhookConfigurationAnnotations; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerWebhookArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerWebhookArgs $; + + public Builder() { + $ = new CertManagerWebhookArgs(); + } + + public Builder(CertManagerWebhookArgs defaults) { + $ = new CertManagerWebhookArgs(Objects.requireNonNull(defaults)); + } + + public Builder affinity(@Nullable Output affinity) { + $.affinity = affinity; + return this; + } + + public Builder affinity(AffinityArgs affinity) { + return affinity(Output.of(affinity)); + } + + /** + * @param containerSecurityContext Container Security Context to be set on the webhook component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder containerSecurityContext(@Nullable Output containerSecurityContext) { + $.containerSecurityContext = containerSecurityContext; + return this; + } + + /** + * @param containerSecurityContext Container Security Context to be set on the webhook component container. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder containerSecurityContext(SecurityContextArgs containerSecurityContext) { + return containerSecurityContext(Output.of(containerSecurityContext)); + } + + /** + * @param deploymentAnnotations Optional additional annotations to add to the webhook Deployment + * + * @return builder + * + */ + public Builder deploymentAnnotations(@Nullable Output> deploymentAnnotations) { + $.deploymentAnnotations = deploymentAnnotations; + return this; + } + + /** + * @param deploymentAnnotations Optional additional annotations to add to the webhook Deployment + * + * @return builder + * + */ + public Builder deploymentAnnotations(Map deploymentAnnotations) { + return deploymentAnnotations(Output.of(deploymentAnnotations)); + } + + /** + * @param extraArgs Optional additional arguments for webhook + * + * @return builder + * + */ + public Builder extraArgs(@Nullable Output> extraArgs) { + $.extraArgs = extraArgs; + return this; + } + + /** + * @param extraArgs Optional additional arguments for webhook + * + * @return builder + * + */ + public Builder extraArgs(List extraArgs) { + return extraArgs(Output.of(extraArgs)); + } + + /** + * @param extraArgs Optional additional arguments for webhook + * + * @return builder + * + */ + public Builder extraArgs(String... extraArgs) { + return extraArgs(List.of(extraArgs)); + } + + /** + * @param hostNetwork Specifies if the webhook should be started in hostNetwork mode. Required for use in some managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working Since the default port for the webhook conflicts with kubelet on the host network, `webhook.securePort` should be changed to an available port if running in hostNetwork mode. + * + * @return builder + * + */ + public Builder hostNetwork(@Nullable Output hostNetwork) { + $.hostNetwork = hostNetwork; + return this; + } + + /** + * @param hostNetwork Specifies if the webhook should be started in hostNetwork mode. Required for use in some managed kubernetes clusters (such as AWS EKS) with custom CNI (such as calico), because control-plane managed by AWS cannot communicate with pods' IP CIDR and admission webhooks are not working Since the default port for the webhook conflicts with kubelet on the host network, `webhook.securePort` should be changed to an available port if running in hostNetwork mode. + * + * @return builder + * + */ + public Builder hostNetwork(Boolean hostNetwork) { + return hostNetwork(Output.of(hostNetwork)); + } + + public Builder image(@Nullable Output image) { + $.image = image; + return this; + } + + public Builder image(CertManagerImageArgs image) { + return image(Output.of(image)); + } + + /** + * @param livenessProbe Liveness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + * @return builder + * + */ + public Builder livenessProbe(@Nullable Output livenessProbe) { + $.livenessProbe = livenessProbe; + return this; + } + + /** + * @param livenessProbe Liveness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + * @return builder + * + */ + public Builder livenessProbe(ProbeArgs livenessProbe) { + return livenessProbe(Output.of(livenessProbe)); + } + + public Builder loadBalancerIP(@Nullable Output loadBalancerIP) { + $.loadBalancerIP = loadBalancerIP; + return this; + } + + public Builder loadBalancerIP(String loadBalancerIP) { + return loadBalancerIP(Output.of(loadBalancerIP)); + } + + /** + * @param mutatingWebhookConfigurationAnnotations Optional additional annotations to add to the webhook MutatingWebhookConfiguration + * + * @return builder + * + */ + public Builder mutatingWebhookConfigurationAnnotations(@Nullable Output> mutatingWebhookConfigurationAnnotations) { + $.mutatingWebhookConfigurationAnnotations = mutatingWebhookConfigurationAnnotations; + return this; + } + + /** + * @param mutatingWebhookConfigurationAnnotations Optional additional annotations to add to the webhook MutatingWebhookConfiguration + * + * @return builder + * + */ + public Builder mutatingWebhookConfigurationAnnotations(Map mutatingWebhookConfigurationAnnotations) { + return mutatingWebhookConfigurationAnnotations(Output.of(mutatingWebhookConfigurationAnnotations)); + } + + public Builder nodeSelector(@Nullable Output> nodeSelector) { + $.nodeSelector = nodeSelector; + return this; + } + + public Builder nodeSelector(Map nodeSelector) { + return nodeSelector(Output.of(nodeSelector)); + } + + /** + * @param podAnnotations Optional additional annotations to add to the webhook Pods + * + * @return builder + * + */ + public Builder podAnnotations(@Nullable Output> podAnnotations) { + $.podAnnotations = podAnnotations; + return this; + } + + /** + * @param podAnnotations Optional additional annotations to add to the webhook Pods + * + * @return builder + * + */ + public Builder podAnnotations(Map podAnnotations) { + return podAnnotations(Output.of(podAnnotations)); + } + + /** + * @param podLabels Optional additional labels to add to the Webhook Pods + * + * @return builder + * + */ + public Builder podLabels(@Nullable Output> podLabels) { + $.podLabels = podLabels; + return this; + } + + /** + * @param podLabels Optional additional labels to add to the Webhook Pods + * + * @return builder + * + */ + public Builder podLabels(Map podLabels) { + return podLabels(Output.of(podLabels)); + } + + /** + * @param readinessProbe Readiness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + * @return builder + * + */ + public Builder readinessProbe(@Nullable Output readinessProbe) { + $.readinessProbe = readinessProbe; + return this; + } + + /** + * @param readinessProbe Readiness probe values. Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes + * + * @return builder + * + */ + public Builder readinessProbe(ProbeArgs readinessProbe) { + return readinessProbe(Output.of(readinessProbe)); + } + + public Builder replicaCount(@Nullable Output replicaCount) { + $.replicaCount = replicaCount; + return this; + } + + public Builder replicaCount(Integer replicaCount) { + return replicaCount(Output.of(replicaCount)); + } + + public Builder resources(@Nullable Output resources) { + $.resources = resources; + return this; + } + + public Builder resources(ResourceRequirementsArgs resources) { + return resources(Output.of(resources)); + } + + /** + * @param securePort The port that the webhook should listen on for requests. In GKE private clusters, by default kubernetes apiservers are allowed to talk to the cluster nodes only on 443 and 10250. so configuring securePort: 10250, will work out of the box without needing to add firewall rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000 + * + * @return builder + * + */ + public Builder securePort(@Nullable Output securePort) { + $.securePort = securePort; + return this; + } + + /** + * @param securePort The port that the webhook should listen on for requests. In GKE private clusters, by default kubernetes apiservers are allowed to talk to the cluster nodes only on 443 and 10250. so configuring securePort: 10250, will work out of the box without needing to add firewall rules or requiring NET_BIND_SERVICE capabilities to bind port numbers <1000 + * + * @return builder + * + */ + public Builder securePort(Integer securePort) { + return securePort(Output.of(securePort)); + } + + /** + * @param securityContext Pod Security Context to be set on the webhook component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder securityContext(@Nullable Output securityContext) { + $.securityContext = securityContext; + return this; + } + + /** + * @param securityContext Pod Security Context to be set on the webhook component Pod. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + * + * @return builder + * + */ + public Builder securityContext(PodSecurityContextArgs securityContext) { + return securityContext(Output.of(securityContext)); + } + + public Builder serviceAccount(@Nullable Output serviceAccount) { + $.serviceAccount = serviceAccount; + return this; + } + + public Builder serviceAccount(CertManagerServiceAccountArgs serviceAccount) { + return serviceAccount(Output.of(serviceAccount)); + } + + /** + * @param serviceAnnotations Optional additional annotations to add to the webhook service + * + * @return builder + * + */ + public Builder serviceAnnotations(@Nullable Output> serviceAnnotations) { + $.serviceAnnotations = serviceAnnotations; + return this; + } + + /** + * @param serviceAnnotations Optional additional annotations to add to the webhook service + * + * @return builder + * + */ + public Builder serviceAnnotations(Map serviceAnnotations) { + return serviceAnnotations(Output.of(serviceAnnotations)); + } + + /** + * @param serviceLabels Optional additional labels to add to the Webhook Service + * + * @return builder + * + */ + public Builder serviceLabels(@Nullable Output> serviceLabels) { + $.serviceLabels = serviceLabels; + return this; + } + + /** + * @param serviceLabels Optional additional labels to add to the Webhook Service + * + * @return builder + * + */ + public Builder serviceLabels(Map serviceLabels) { + return serviceLabels(Output.of(serviceLabels)); + } + + /** + * @param serviceType Specifies how the service should be handled. Useful if you want to expose the webhook to outside of the cluster. In some cases, the control plane cannot reach internal services. + * + * @return builder + * + */ + public Builder serviceType(@Nullable Output serviceType) { + $.serviceType = serviceType; + return this; + } + + /** + * @param serviceType Specifies how the service should be handled. Useful if you want to expose the webhook to outside of the cluster. In some cases, the control plane cannot reach internal services. + * + * @return builder + * + */ + public Builder serviceType(String serviceType) { + return serviceType(Output.of(serviceType)); + } + + public Builder strategy(@Nullable Output strategy) { + $.strategy = strategy; + return this; + } + + public Builder strategy(DeploymentStrategyArgs strategy) { + return strategy(Output.of(strategy)); + } + + public Builder timeoutSeconds(@Nullable Output timeoutSeconds) { + $.timeoutSeconds = timeoutSeconds; + return this; + } + + public Builder timeoutSeconds(Integer timeoutSeconds) { + return timeoutSeconds(Output.of(timeoutSeconds)); + } + + public Builder tolerations(@Nullable Output> tolerations) { + $.tolerations = tolerations; + return this; + } + + public Builder tolerations(List tolerations) { + return tolerations(Output.of(tolerations)); + } + + public Builder tolerations(TolerationArgs... tolerations) { + return tolerations(List.of(tolerations)); + } + + /** + * @param url Overrides the mutating webhook and validating webhook so they reach the webhook service using the `url` field instead of a service. + * + * @return builder + * + */ + public Builder url(@Nullable Output url) { + $.url = url; + return this; + } + + /** + * @param url Overrides the mutating webhook and validating webhook so they reach the webhook service using the `url` field instead of a service. + * + * @return builder + * + */ + public Builder url(CertManagerWebhookURLArgs url) { + return url(Output.of(url)); + } + + /** + * @param validatingWebhookConfigurationAnnotations Optional additional annotations to add to the webhook ValidatingWebhookConfiguration + * + * @return builder + * + */ + public Builder validatingWebhookConfigurationAnnotations(@Nullable Output> validatingWebhookConfigurationAnnotations) { + $.validatingWebhookConfigurationAnnotations = validatingWebhookConfigurationAnnotations; + return this; + } + + /** + * @param validatingWebhookConfigurationAnnotations Optional additional annotations to add to the webhook ValidatingWebhookConfiguration + * + * @return builder + * + */ + public Builder validatingWebhookConfigurationAnnotations(Map validatingWebhookConfigurationAnnotations) { + return validatingWebhookConfigurationAnnotations(Output.of(validatingWebhookConfigurationAnnotations)); + } + + public CertManagerWebhookArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerWebhookURLArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerWebhookURLArgs.java new file mode 100644 index 0000000..d219771 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/CertManagerWebhookURLArgs.java @@ -0,0 +1,63 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +public final class CertManagerWebhookURLArgs extends com.pulumi.resources.ResourceArgs { + + public static final CertManagerWebhookURLArgs Empty = new CertManagerWebhookURLArgs(); + + @Import(name="host") + private @Nullable Output host; + + public Optional> host() { + return Optional.ofNullable(this.host); + } + + private CertManagerWebhookURLArgs() {} + + private CertManagerWebhookURLArgs(CertManagerWebhookURLArgs $) { + this.host = $.host; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(CertManagerWebhookURLArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private CertManagerWebhookURLArgs $; + + public Builder() { + $ = new CertManagerWebhookURLArgs(); + } + + public Builder(CertManagerWebhookURLArgs defaults) { + $ = new CertManagerWebhookURLArgs(Objects.requireNonNull(defaults)); + } + + public Builder host(@Nullable Output host) { + $.host = host; + return this; + } + + public Builder host(String host) { + return host(Output.of(host)); + } + + public CertManagerWebhookURLArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/ReleaseArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/ReleaseArgs.java new file mode 100644 index 0000000..18dae04 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/ReleaseArgs.java @@ -0,0 +1,1290 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.asset.AssetOrArchive; +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import com.pulumi.kubernetescertmanager.inputs.RepositoryOptsArgs; +import java.lang.Boolean; +import java.lang.Integer; +import java.lang.Object; +import java.lang.String; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * A Release is an instance of a chart running in a Kubernetes cluster. + * A Chart is a Helm package. It contains all of the resource definitions necessary to run an application, tool, or service inside of a Kubernetes cluster. + * Note - Helm Release is currently in BETA and may change. Use in production environment is discouraged. + * + */ +public final class ReleaseArgs extends com.pulumi.resources.ResourceArgs { + + public static final ReleaseArgs Empty = new ReleaseArgs(); + + /** + * If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used. + * + */ + @Import(name="atomic") + private @Nullable Output atomic; + + /** + * @return If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used. + * + */ + public Optional> atomic() { + return Optional.ofNullable(this.atomic); + } + + /** + * Chart name to be installed. A path may be used. + * + */ + @Import(name="chart") + private @Nullable Output chart; + + /** + * @return Chart name to be installed. A path may be used. + * + */ + public Optional> chart() { + return Optional.ofNullable(this.chart); + } + + /** + * Allow deletion of new resources created in this upgrade when upgrade fails. + * + */ + @Import(name="cleanupOnFail") + private @Nullable Output cleanupOnFail; + + /** + * @return Allow deletion of new resources created in this upgrade when upgrade fails. + * + */ + public Optional> cleanupOnFail() { + return Optional.ofNullable(this.cleanupOnFail); + } + + /** + * Create the namespace if it does not exist. + * + */ + @Import(name="createNamespace") + private @Nullable Output createNamespace; + + /** + * @return Create the namespace if it does not exist. + * + */ + public Optional> createNamespace() { + return Optional.ofNullable(this.createNamespace); + } + + /** + * Run helm dependency update before installing the chart. + * + */ + @Import(name="dependencyUpdate") + private @Nullable Output dependencyUpdate; + + /** + * @return Run helm dependency update before installing the chart. + * + */ + public Optional> dependencyUpdate() { + return Optional.ofNullable(this.dependencyUpdate); + } + + /** + * Add a custom description + * + */ + @Import(name="description") + private @Nullable Output description; + + /** + * @return Add a custom description + * + */ + public Optional> description() { + return Optional.ofNullable(this.description); + } + + /** + * Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored. + * + */ + @Import(name="devel") + private @Nullable Output devel; + + /** + * @return Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored. + * + */ + public Optional> devel() { + return Optional.ofNullable(this.devel); + } + + /** + * Prevent CRD hooks from, running, but run other hooks. See helm install --no-crd-hook + * + */ + @Import(name="disableCRDHooks") + private @Nullable Output disableCRDHooks; + + /** + * @return Prevent CRD hooks from, running, but run other hooks. See helm install --no-crd-hook + * + */ + public Optional> disableCRDHooks() { + return Optional.ofNullable(this.disableCRDHooks); + } + + /** + * If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema + * + */ + @Import(name="disableOpenapiValidation") + private @Nullable Output disableOpenapiValidation; + + /** + * @return If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema + * + */ + public Optional> disableOpenapiValidation() { + return Optional.ofNullable(this.disableOpenapiValidation); + } + + /** + * Prevent hooks from running. + * + */ + @Import(name="disableWebhooks") + private @Nullable Output disableWebhooks; + + /** + * @return Prevent hooks from running. + * + */ + public Optional> disableWebhooks() { + return Optional.ofNullable(this.disableWebhooks); + } + + /** + * Force resource update through delete/recreate if needed. + * + */ + @Import(name="forceUpdate") + private @Nullable Output forceUpdate; + + /** + * @return Force resource update through delete/recreate if needed. + * + */ + public Optional> forceUpdate() { + return Optional.ofNullable(this.forceUpdate); + } + + /** + * Location of public keys used for verification. Used only if `verify` is true + * + */ + @Import(name="keyring") + private @Nullable Output keyring; + + /** + * @return Location of public keys used for verification. Used only if `verify` is true + * + */ + public Optional> keyring() { + return Optional.ofNullable(this.keyring); + } + + /** + * Run helm lint when planning. + * + */ + @Import(name="lint") + private @Nullable Output lint; + + /** + * @return Run helm lint when planning. + * + */ + public Optional> lint() { + return Optional.ofNullable(this.lint); + } + + /** + * The rendered manifests as JSON. Not yet supported. + * + */ + @Import(name="manifest") + private @Nullable Output> manifest; + + /** + * @return The rendered manifests as JSON. Not yet supported. + * + */ + public Optional>> manifest() { + return Optional.ofNullable(this.manifest); + } + + /** + * Limit the maximum number of revisions saved per release. Use 0 for no limit. + * + */ + @Import(name="maxHistory") + private @Nullable Output maxHistory; + + /** + * @return Limit the maximum number of revisions saved per release. Use 0 for no limit. + * + */ + public Optional> maxHistory() { + return Optional.ofNullable(this.maxHistory); + } + + /** + * Release name. + * + */ + @Import(name="name") + private @Nullable Output name; + + /** + * @return Release name. + * + */ + public Optional> name() { + return Optional.ofNullable(this.name); + } + + /** + * Namespace to install the release into. + * + */ + @Import(name="namespace") + private @Nullable Output namespace; + + /** + * @return Namespace to install the release into. + * + */ + public Optional> namespace() { + return Optional.ofNullable(this.namespace); + } + + /** + * Postrender command to run. + * + */ + @Import(name="postrender") + private @Nullable Output postrender; + + /** + * @return Postrender command to run. + * + */ + public Optional> postrender() { + return Optional.ofNullable(this.postrender); + } + + /** + * Perform pods restart during upgrade/rollback. + * + */ + @Import(name="recreatePods") + private @Nullable Output recreatePods; + + /** + * @return Perform pods restart during upgrade/rollback. + * + */ + public Optional> recreatePods() { + return Optional.ofNullable(this.recreatePods); + } + + /** + * If set, render subchart notes along with the parent. + * + */ + @Import(name="renderSubchartNotes") + private @Nullable Output renderSubchartNotes; + + /** + * @return If set, render subchart notes along with the parent. + * + */ + public Optional> renderSubchartNotes() { + return Optional.ofNullable(this.renderSubchartNotes); + } + + /** + * Re-use the given name, even if that name is already used. This is unsafe in production + * + */ + @Import(name="replace") + private @Nullable Output replace; + + /** + * @return Re-use the given name, even if that name is already used. This is unsafe in production + * + */ + public Optional> replace() { + return Optional.ofNullable(this.replace); + } + + /** + * Specification defining the Helm chart repository to use. + * + */ + @Import(name="repositoryOpts") + private @Nullable Output repositoryOpts; + + /** + * @return Specification defining the Helm chart repository to use. + * + */ + public Optional> repositoryOpts() { + return Optional.ofNullable(this.repositoryOpts); + } + + /** + * When upgrading, reset the values to the ones built into the chart. + * + */ + @Import(name="resetValues") + private @Nullable Output resetValues; + + /** + * @return When upgrading, reset the values to the ones built into the chart. + * + */ + public Optional> resetValues() { + return Optional.ofNullable(this.resetValues); + } + + /** + * Names of resources created by the release grouped by "kind/version". + * + */ + @Import(name="resourceNames") + private @Nullable Output>> resourceNames; + + /** + * @return Names of resources created by the release grouped by "kind/version". + * + */ + public Optional>>> resourceNames() { + return Optional.ofNullable(this.resourceNames); + } + + /** + * When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored + * + */ + @Import(name="reuseValues") + private @Nullable Output reuseValues; + + /** + * @return When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored + * + */ + public Optional> reuseValues() { + return Optional.ofNullable(this.reuseValues); + } + + /** + * By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic. + * + */ + @Import(name="skipAwait") + private @Nullable Output skipAwait; + + /** + * @return By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic. + * + */ + public Optional> skipAwait() { + return Optional.ofNullable(this.skipAwait); + } + + /** + * If set, no CRDs will be installed. By default, CRDs are installed if not already present. + * + */ + @Import(name="skipCrds") + private @Nullable Output skipCrds; + + /** + * @return If set, no CRDs will be installed. By default, CRDs are installed if not already present. + * + */ + public Optional> skipCrds() { + return Optional.ofNullable(this.skipCrds); + } + + /** + * Time in seconds to wait for any individual kubernetes operation. + * + */ + @Import(name="timeout") + private @Nullable Output timeout; + + /** + * @return Time in seconds to wait for any individual kubernetes operation. + * + */ + public Optional> timeout() { + return Optional.ofNullable(this.timeout); + } + + /** + * List of assets (raw yaml files). Content is read and merged with values. Not yet supported. + * + */ + @Import(name="valueYamlFiles") + private @Nullable Output> valueYamlFiles; + + /** + * @return List of assets (raw yaml files). Content is read and merged with values. Not yet supported. + * + */ + public Optional>> valueYamlFiles() { + return Optional.ofNullable(this.valueYamlFiles); + } + + /** + * Custom values set for the release. + * + */ + @Import(name="values") + private @Nullable Output> values; + + /** + * @return Custom values set for the release. + * + */ + public Optional>> values() { + return Optional.ofNullable(this.values); + } + + /** + * Verify the package before installing it. + * + */ + @Import(name="verify") + private @Nullable Output verify; + + /** + * @return Verify the package before installing it. + * + */ + public Optional> verify() { + return Optional.ofNullable(this.verify); + } + + /** + * Specify the exact chart version to install. If this is not specified, the latest version is installed. + * + */ + @Import(name="version") + private @Nullable Output version; + + /** + * @return Specify the exact chart version to install. If this is not specified, the latest version is installed. + * + */ + public Optional> version() { + return Optional.ofNullable(this.version); + } + + /** + * Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled. + * + */ + @Import(name="waitForJobs") + private @Nullable Output waitForJobs; + + /** + * @return Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled. + * + */ + public Optional> waitForJobs() { + return Optional.ofNullable(this.waitForJobs); + } + + private ReleaseArgs() {} + + private ReleaseArgs(ReleaseArgs $) { + this.atomic = $.atomic; + this.chart = $.chart; + this.cleanupOnFail = $.cleanupOnFail; + this.createNamespace = $.createNamespace; + this.dependencyUpdate = $.dependencyUpdate; + this.description = $.description; + this.devel = $.devel; + this.disableCRDHooks = $.disableCRDHooks; + this.disableOpenapiValidation = $.disableOpenapiValidation; + this.disableWebhooks = $.disableWebhooks; + this.forceUpdate = $.forceUpdate; + this.keyring = $.keyring; + this.lint = $.lint; + this.manifest = $.manifest; + this.maxHistory = $.maxHistory; + this.name = $.name; + this.namespace = $.namespace; + this.postrender = $.postrender; + this.recreatePods = $.recreatePods; + this.renderSubchartNotes = $.renderSubchartNotes; + this.replace = $.replace; + this.repositoryOpts = $.repositoryOpts; + this.resetValues = $.resetValues; + this.resourceNames = $.resourceNames; + this.reuseValues = $.reuseValues; + this.skipAwait = $.skipAwait; + this.skipCrds = $.skipCrds; + this.timeout = $.timeout; + this.valueYamlFiles = $.valueYamlFiles; + this.values = $.values; + this.verify = $.verify; + this.version = $.version; + this.waitForJobs = $.waitForJobs; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(ReleaseArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private ReleaseArgs $; + + public Builder() { + $ = new ReleaseArgs(); + } + + public Builder(ReleaseArgs defaults) { + $ = new ReleaseArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param atomic If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used. + * + * @return builder + * + */ + public Builder atomic(@Nullable Output atomic) { + $.atomic = atomic; + return this; + } + + /** + * @param atomic If set, installation process purges chart on fail. `skipAwait` will be disabled automatically if atomic is used. + * + * @return builder + * + */ + public Builder atomic(Boolean atomic) { + return atomic(Output.of(atomic)); + } + + /** + * @param chart Chart name to be installed. A path may be used. + * + * @return builder + * + */ + public Builder chart(@Nullable Output chart) { + $.chart = chart; + return this; + } + + /** + * @param chart Chart name to be installed. A path may be used. + * + * @return builder + * + */ + public Builder chart(String chart) { + return chart(Output.of(chart)); + } + + /** + * @param cleanupOnFail Allow deletion of new resources created in this upgrade when upgrade fails. + * + * @return builder + * + */ + public Builder cleanupOnFail(@Nullable Output cleanupOnFail) { + $.cleanupOnFail = cleanupOnFail; + return this; + } + + /** + * @param cleanupOnFail Allow deletion of new resources created in this upgrade when upgrade fails. + * + * @return builder + * + */ + public Builder cleanupOnFail(Boolean cleanupOnFail) { + return cleanupOnFail(Output.of(cleanupOnFail)); + } + + /** + * @param createNamespace Create the namespace if it does not exist. + * + * @return builder + * + */ + public Builder createNamespace(@Nullable Output createNamespace) { + $.createNamespace = createNamespace; + return this; + } + + /** + * @param createNamespace Create the namespace if it does not exist. + * + * @return builder + * + */ + public Builder createNamespace(Boolean createNamespace) { + return createNamespace(Output.of(createNamespace)); + } + + /** + * @param dependencyUpdate Run helm dependency update before installing the chart. + * + * @return builder + * + */ + public Builder dependencyUpdate(@Nullable Output dependencyUpdate) { + $.dependencyUpdate = dependencyUpdate; + return this; + } + + /** + * @param dependencyUpdate Run helm dependency update before installing the chart. + * + * @return builder + * + */ + public Builder dependencyUpdate(Boolean dependencyUpdate) { + return dependencyUpdate(Output.of(dependencyUpdate)); + } + + /** + * @param description Add a custom description + * + * @return builder + * + */ + public Builder description(@Nullable Output description) { + $.description = description; + return this; + } + + /** + * @param description Add a custom description + * + * @return builder + * + */ + public Builder description(String description) { + return description(Output.of(description)); + } + + /** + * @param devel Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored. + * + * @return builder + * + */ + public Builder devel(@Nullable Output devel) { + $.devel = devel; + return this; + } + + /** + * @param devel Use chart development versions, too. Equivalent to version '>0.0.0-0'. If `version` is set, this is ignored. + * + * @return builder + * + */ + public Builder devel(Boolean devel) { + return devel(Output.of(devel)); + } + + /** + * @param disableCRDHooks Prevent CRD hooks from, running, but run other hooks. See helm install --no-crd-hook + * + * @return builder + * + */ + public Builder disableCRDHooks(@Nullable Output disableCRDHooks) { + $.disableCRDHooks = disableCRDHooks; + return this; + } + + /** + * @param disableCRDHooks Prevent CRD hooks from, running, but run other hooks. See helm install --no-crd-hook + * + * @return builder + * + */ + public Builder disableCRDHooks(Boolean disableCRDHooks) { + return disableCRDHooks(Output.of(disableCRDHooks)); + } + + /** + * @param disableOpenapiValidation If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema + * + * @return builder + * + */ + public Builder disableOpenapiValidation(@Nullable Output disableOpenapiValidation) { + $.disableOpenapiValidation = disableOpenapiValidation; + return this; + } + + /** + * @param disableOpenapiValidation If set, the installation process will not validate rendered templates against the Kubernetes OpenAPI Schema + * + * @return builder + * + */ + public Builder disableOpenapiValidation(Boolean disableOpenapiValidation) { + return disableOpenapiValidation(Output.of(disableOpenapiValidation)); + } + + /** + * @param disableWebhooks Prevent hooks from running. + * + * @return builder + * + */ + public Builder disableWebhooks(@Nullable Output disableWebhooks) { + $.disableWebhooks = disableWebhooks; + return this; + } + + /** + * @param disableWebhooks Prevent hooks from running. + * + * @return builder + * + */ + public Builder disableWebhooks(Boolean disableWebhooks) { + return disableWebhooks(Output.of(disableWebhooks)); + } + + /** + * @param forceUpdate Force resource update through delete/recreate if needed. + * + * @return builder + * + */ + public Builder forceUpdate(@Nullable Output forceUpdate) { + $.forceUpdate = forceUpdate; + return this; + } + + /** + * @param forceUpdate Force resource update through delete/recreate if needed. + * + * @return builder + * + */ + public Builder forceUpdate(Boolean forceUpdate) { + return forceUpdate(Output.of(forceUpdate)); + } + + /** + * @param keyring Location of public keys used for verification. Used only if `verify` is true + * + * @return builder + * + */ + public Builder keyring(@Nullable Output keyring) { + $.keyring = keyring; + return this; + } + + /** + * @param keyring Location of public keys used for verification. Used only if `verify` is true + * + * @return builder + * + */ + public Builder keyring(String keyring) { + return keyring(Output.of(keyring)); + } + + /** + * @param lint Run helm lint when planning. + * + * @return builder + * + */ + public Builder lint(@Nullable Output lint) { + $.lint = lint; + return this; + } + + /** + * @param lint Run helm lint when planning. + * + * @return builder + * + */ + public Builder lint(Boolean lint) { + return lint(Output.of(lint)); + } + + /** + * @param manifest The rendered manifests as JSON. Not yet supported. + * + * @return builder + * + */ + public Builder manifest(@Nullable Output> manifest) { + $.manifest = manifest; + return this; + } + + /** + * @param manifest The rendered manifests as JSON. Not yet supported. + * + * @return builder + * + */ + public Builder manifest(Map manifest) { + return manifest(Output.of(manifest)); + } + + /** + * @param maxHistory Limit the maximum number of revisions saved per release. Use 0 for no limit. + * + * @return builder + * + */ + public Builder maxHistory(@Nullable Output maxHistory) { + $.maxHistory = maxHistory; + return this; + } + + /** + * @param maxHistory Limit the maximum number of revisions saved per release. Use 0 for no limit. + * + * @return builder + * + */ + public Builder maxHistory(Integer maxHistory) { + return maxHistory(Output.of(maxHistory)); + } + + /** + * @param name Release name. + * + * @return builder + * + */ + public Builder name(@Nullable Output name) { + $.name = name; + return this; + } + + /** + * @param name Release name. + * + * @return builder + * + */ + public Builder name(String name) { + return name(Output.of(name)); + } + + /** + * @param namespace Namespace to install the release into. + * + * @return builder + * + */ + public Builder namespace(@Nullable Output namespace) { + $.namespace = namespace; + return this; + } + + /** + * @param namespace Namespace to install the release into. + * + * @return builder + * + */ + public Builder namespace(String namespace) { + return namespace(Output.of(namespace)); + } + + /** + * @param postrender Postrender command to run. + * + * @return builder + * + */ + public Builder postrender(@Nullable Output postrender) { + $.postrender = postrender; + return this; + } + + /** + * @param postrender Postrender command to run. + * + * @return builder + * + */ + public Builder postrender(String postrender) { + return postrender(Output.of(postrender)); + } + + /** + * @param recreatePods Perform pods restart during upgrade/rollback. + * + * @return builder + * + */ + public Builder recreatePods(@Nullable Output recreatePods) { + $.recreatePods = recreatePods; + return this; + } + + /** + * @param recreatePods Perform pods restart during upgrade/rollback. + * + * @return builder + * + */ + public Builder recreatePods(Boolean recreatePods) { + return recreatePods(Output.of(recreatePods)); + } + + /** + * @param renderSubchartNotes If set, render subchart notes along with the parent. + * + * @return builder + * + */ + public Builder renderSubchartNotes(@Nullable Output renderSubchartNotes) { + $.renderSubchartNotes = renderSubchartNotes; + return this; + } + + /** + * @param renderSubchartNotes If set, render subchart notes along with the parent. + * + * @return builder + * + */ + public Builder renderSubchartNotes(Boolean renderSubchartNotes) { + return renderSubchartNotes(Output.of(renderSubchartNotes)); + } + + /** + * @param replace Re-use the given name, even if that name is already used. This is unsafe in production + * + * @return builder + * + */ + public Builder replace(@Nullable Output replace) { + $.replace = replace; + return this; + } + + /** + * @param replace Re-use the given name, even if that name is already used. This is unsafe in production + * + * @return builder + * + */ + public Builder replace(Boolean replace) { + return replace(Output.of(replace)); + } + + /** + * @param repositoryOpts Specification defining the Helm chart repository to use. + * + * @return builder + * + */ + public Builder repositoryOpts(@Nullable Output repositoryOpts) { + $.repositoryOpts = repositoryOpts; + return this; + } + + /** + * @param repositoryOpts Specification defining the Helm chart repository to use. + * + * @return builder + * + */ + public Builder repositoryOpts(RepositoryOptsArgs repositoryOpts) { + return repositoryOpts(Output.of(repositoryOpts)); + } + + /** + * @param resetValues When upgrading, reset the values to the ones built into the chart. + * + * @return builder + * + */ + public Builder resetValues(@Nullable Output resetValues) { + $.resetValues = resetValues; + return this; + } + + /** + * @param resetValues When upgrading, reset the values to the ones built into the chart. + * + * @return builder + * + */ + public Builder resetValues(Boolean resetValues) { + return resetValues(Output.of(resetValues)); + } + + /** + * @param resourceNames Names of resources created by the release grouped by "kind/version". + * + * @return builder + * + */ + public Builder resourceNames(@Nullable Output>> resourceNames) { + $.resourceNames = resourceNames; + return this; + } + + /** + * @param resourceNames Names of resources created by the release grouped by "kind/version". + * + * @return builder + * + */ + public Builder resourceNames(Map> resourceNames) { + return resourceNames(Output.of(resourceNames)); + } + + /** + * @param reuseValues When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored + * + * @return builder + * + */ + public Builder reuseValues(@Nullable Output reuseValues) { + $.reuseValues = reuseValues; + return this; + } + + /** + * @param reuseValues When upgrading, reuse the last release's values and merge in any overrides. If 'resetValues' is specified, this is ignored + * + * @return builder + * + */ + public Builder reuseValues(Boolean reuseValues) { + return reuseValues(Output.of(reuseValues)); + } + + /** + * @param skipAwait By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic. + * + * @return builder + * + */ + public Builder skipAwait(@Nullable Output skipAwait) { + $.skipAwait = skipAwait; + return this; + } + + /** + * @param skipAwait By default, the provider waits until all resources are in a ready state before marking the release as successful. Setting this to true will skip such await logic. + * + * @return builder + * + */ + public Builder skipAwait(Boolean skipAwait) { + return skipAwait(Output.of(skipAwait)); + } + + /** + * @param skipCrds If set, no CRDs will be installed. By default, CRDs are installed if not already present. + * + * @return builder + * + */ + public Builder skipCrds(@Nullable Output skipCrds) { + $.skipCrds = skipCrds; + return this; + } + + /** + * @param skipCrds If set, no CRDs will be installed. By default, CRDs are installed if not already present. + * + * @return builder + * + */ + public Builder skipCrds(Boolean skipCrds) { + return skipCrds(Output.of(skipCrds)); + } + + /** + * @param timeout Time in seconds to wait for any individual kubernetes operation. + * + * @return builder + * + */ + public Builder timeout(@Nullable Output timeout) { + $.timeout = timeout; + return this; + } + + /** + * @param timeout Time in seconds to wait for any individual kubernetes operation. + * + * @return builder + * + */ + public Builder timeout(Integer timeout) { + return timeout(Output.of(timeout)); + } + + /** + * @param valueYamlFiles List of assets (raw yaml files). Content is read and merged with values. Not yet supported. + * + * @return builder + * + */ + public Builder valueYamlFiles(@Nullable Output> valueYamlFiles) { + $.valueYamlFiles = valueYamlFiles; + return this; + } + + /** + * @param valueYamlFiles List of assets (raw yaml files). Content is read and merged with values. Not yet supported. + * + * @return builder + * + */ + public Builder valueYamlFiles(List valueYamlFiles) { + return valueYamlFiles(Output.of(valueYamlFiles)); + } + + /** + * @param valueYamlFiles List of assets (raw yaml files). Content is read and merged with values. Not yet supported. + * + * @return builder + * + */ + public Builder valueYamlFiles(AssetOrArchive... valueYamlFiles) { + return valueYamlFiles(List.of(valueYamlFiles)); + } + + /** + * @param values Custom values set for the release. + * + * @return builder + * + */ + public Builder values(@Nullable Output> values) { + $.values = values; + return this; + } + + /** + * @param values Custom values set for the release. + * + * @return builder + * + */ + public Builder values(Map values) { + return values(Output.of(values)); + } + + /** + * @param verify Verify the package before installing it. + * + * @return builder + * + */ + public Builder verify(@Nullable Output verify) { + $.verify = verify; + return this; + } + + /** + * @param verify Verify the package before installing it. + * + * @return builder + * + */ + public Builder verify(Boolean verify) { + return verify(Output.of(verify)); + } + + /** + * @param version Specify the exact chart version to install. If this is not specified, the latest version is installed. + * + * @return builder + * + */ + public Builder version(@Nullable Output version) { + $.version = version; + return this; + } + + /** + * @param version Specify the exact chart version to install. If this is not specified, the latest version is installed. + * + * @return builder + * + */ + public Builder version(String version) { + return version(Output.of(version)); + } + + /** + * @param waitForJobs Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled. + * + * @return builder + * + */ + public Builder waitForJobs(@Nullable Output waitForJobs) { + $.waitForJobs = waitForJobs; + return this; + } + + /** + * @param waitForJobs Will wait until all Jobs have been completed before marking the release as successful. This is ignored if `skipAwait` is enabled. + * + * @return builder + * + */ + public Builder waitForJobs(Boolean waitForJobs) { + return waitForJobs(Output.of(waitForJobs)); + } + + public ReleaseArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/RepositoryOptsArgs.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/RepositoryOptsArgs.java new file mode 100644 index 0000000..c9d4618 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/inputs/RepositoryOptsArgs.java @@ -0,0 +1,272 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.inputs; + +import com.pulumi.core.Output; +import com.pulumi.core.annotations.Import; +import java.lang.String; +import java.util.Objects; +import java.util.Optional; +import javax.annotation.Nullable; + + +/** + * Specification defining the Helm chart repository to use. + * + */ +public final class RepositoryOptsArgs extends com.pulumi.resources.ResourceArgs { + + public static final RepositoryOptsArgs Empty = new RepositoryOptsArgs(); + + /** + * The Repository's CA File + * + */ + @Import(name="caFile") + private @Nullable Output caFile; + + /** + * @return The Repository's CA File + * + */ + public Optional> caFile() { + return Optional.ofNullable(this.caFile); + } + + /** + * The repository's cert file + * + */ + @Import(name="certFile") + private @Nullable Output certFile; + + /** + * @return The repository's cert file + * + */ + public Optional> certFile() { + return Optional.ofNullable(this.certFile); + } + + /** + * The repository's cert key file + * + */ + @Import(name="keyFile") + private @Nullable Output keyFile; + + /** + * @return The repository's cert key file + * + */ + public Optional> keyFile() { + return Optional.ofNullable(this.keyFile); + } + + /** + * Password for HTTP basic authentication + * + */ + @Import(name="password") + private @Nullable Output password; + + /** + * @return Password for HTTP basic authentication + * + */ + public Optional> password() { + return Optional.ofNullable(this.password); + } + + /** + * Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository. + * + */ + @Import(name="repo") + private @Nullable Output repo; + + /** + * @return Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository. + * + */ + public Optional> repo() { + return Optional.ofNullable(this.repo); + } + + /** + * Username for HTTP basic authentication + * + */ + @Import(name="username") + private @Nullable Output username; + + /** + * @return Username for HTTP basic authentication + * + */ + public Optional> username() { + return Optional.ofNullable(this.username); + } + + private RepositoryOptsArgs() {} + + private RepositoryOptsArgs(RepositoryOptsArgs $) { + this.caFile = $.caFile; + this.certFile = $.certFile; + this.keyFile = $.keyFile; + this.password = $.password; + this.repo = $.repo; + this.username = $.username; + } + + public static Builder builder() { + return new Builder(); + } + public static Builder builder(RepositoryOptsArgs defaults) { + return new Builder(defaults); + } + + public static final class Builder { + private RepositoryOptsArgs $; + + public Builder() { + $ = new RepositoryOptsArgs(); + } + + public Builder(RepositoryOptsArgs defaults) { + $ = new RepositoryOptsArgs(Objects.requireNonNull(defaults)); + } + + /** + * @param caFile The Repository's CA File + * + * @return builder + * + */ + public Builder caFile(@Nullable Output caFile) { + $.caFile = caFile; + return this; + } + + /** + * @param caFile The Repository's CA File + * + * @return builder + * + */ + public Builder caFile(String caFile) { + return caFile(Output.of(caFile)); + } + + /** + * @param certFile The repository's cert file + * + * @return builder + * + */ + public Builder certFile(@Nullable Output certFile) { + $.certFile = certFile; + return this; + } + + /** + * @param certFile The repository's cert file + * + * @return builder + * + */ + public Builder certFile(String certFile) { + return certFile(Output.of(certFile)); + } + + /** + * @param keyFile The repository's cert key file + * + * @return builder + * + */ + public Builder keyFile(@Nullable Output keyFile) { + $.keyFile = keyFile; + return this; + } + + /** + * @param keyFile The repository's cert key file + * + * @return builder + * + */ + public Builder keyFile(String keyFile) { + return keyFile(Output.of(keyFile)); + } + + /** + * @param password Password for HTTP basic authentication + * + * @return builder + * + */ + public Builder password(@Nullable Output password) { + $.password = password; + return this; + } + + /** + * @param password Password for HTTP basic authentication + * + * @return builder + * + */ + public Builder password(String password) { + return password(Output.of(password)); + } + + /** + * @param repo Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository. + * + * @return builder + * + */ + public Builder repo(@Nullable Output repo) { + $.repo = repo; + return this; + } + + /** + * @param repo Repository where to locate the requested chart. If is a URL the chart is installed without installing the repository. + * + * @return builder + * + */ + public Builder repo(String repo) { + return repo(Output.of(repo)); + } + + /** + * @param username Username for HTTP basic authentication + * + * @return builder + * + */ + public Builder username(@Nullable Output username) { + $.username = username; + return this; + } + + /** + * @param username Username for HTTP basic authentication + * + * @return builder + * + */ + public Builder username(String username) { + return username(Output.of(username)); + } + + public RepositoryOptsArgs build() { + return $; + } + } + +} diff --git a/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/outputs/ReleaseStatus.java b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/outputs/ReleaseStatus.java new file mode 100644 index 0000000..e9c7262 --- /dev/null +++ b/sdk/java/src/main/java/com/pulumi/kubernetescertmanager/outputs/ReleaseStatus.java @@ -0,0 +1,197 @@ +// *** WARNING: this file was generated by pulumi. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +package com.pulumi.kubernetescertmanager.outputs; + +import com.pulumi.core.annotations.CustomType; +import com.pulumi.exceptions.MissingRequiredPropertyException; +import java.lang.Integer; +import java.lang.String; +import java.util.Objects; + +@CustomType +public final class ReleaseStatus { + /** + * @return The version number of the application being deployed. + * + */ + private String appVersion; + /** + * @return The name of the chart. + * + */ + private String chart; + /** + * @return Name is the name of the release. + * + */ + private String name; + /** + * @return Namespace is the kubernetes namespace of the release. + * + */ + private String namespace; + /** + * @return Version is an int32 which represents the version of the release. + * + */ + private Integer revision; + /** + * @return Status of the release. + * + */ + private String status; + /** + * @return A SemVer 2 conformant version string of the chart. + * + */ + private String version; + + private ReleaseStatus() {} + /** + * @return The version number of the application being deployed. + * + */ + public String appVersion() { + return this.appVersion; + } + /** + * @return The name of the chart. + * + */ + public String chart() { + return this.chart; + } + /** + * @return Name is the name of the release. + * + */ + public String name() { + return this.name; + } + /** + * @return Namespace is the kubernetes namespace of the release. + * + */ + public String namespace() { + return this.namespace; + } + /** + * @return Version is an int32 which represents the version of the release. + * + */ + public Integer revision() { + return this.revision; + } + /** + * @return Status of the release. + * + */ + public String status() { + return this.status; + } + /** + * @return A SemVer 2 conformant version string of the chart. + * + */ + public String version() { + return this.version; + } + + public static Builder builder() { + return new Builder(); + } + + public static Builder builder(ReleaseStatus defaults) { + return new Builder(defaults); + } + @CustomType.Builder + public static final class Builder { + private String appVersion; + private String chart; + private String name; + private String namespace; + private Integer revision; + private String status; + private String version; + public Builder() {} + public Builder(ReleaseStatus defaults) { + Objects.requireNonNull(defaults); + this.appVersion = defaults.appVersion; + this.chart = defaults.chart; + this.name = defaults.name; + this.namespace = defaults.namespace; + this.revision = defaults.revision; + this.status = defaults.status; + this.version = defaults.version; + } + + @CustomType.Setter + public Builder appVersion(String appVersion) { + if (appVersion == null) { + throw new MissingRequiredPropertyException("ReleaseStatus", "appVersion"); + } + this.appVersion = appVersion; + return this; + } + @CustomType.Setter + public Builder chart(String chart) { + if (chart == null) { + throw new MissingRequiredPropertyException("ReleaseStatus", "chart"); + } + this.chart = chart; + return this; + } + @CustomType.Setter + public Builder name(String name) { + if (name == null) { + throw new MissingRequiredPropertyException("ReleaseStatus", "name"); + } + this.name = name; + return this; + } + @CustomType.Setter + public Builder namespace(String namespace) { + if (namespace == null) { + throw new MissingRequiredPropertyException("ReleaseStatus", "namespace"); + } + this.namespace = namespace; + return this; + } + @CustomType.Setter + public Builder revision(Integer revision) { + if (revision == null) { + throw new MissingRequiredPropertyException("ReleaseStatus", "revision"); + } + this.revision = revision; + return this; + } + @CustomType.Setter + public Builder status(String status) { + if (status == null) { + throw new MissingRequiredPropertyException("ReleaseStatus", "status"); + } + this.status = status; + return this; + } + @CustomType.Setter + public Builder version(String version) { + if (version == null) { + throw new MissingRequiredPropertyException("ReleaseStatus", "version"); + } + this.version = version; + return this; + } + public ReleaseStatus build() { + final var _resultValue = new ReleaseStatus(); + _resultValue.appVersion = appVersion; + _resultValue.chart = chart; + _resultValue.name = name; + _resultValue.namespace = namespace; + _resultValue.revision = revision; + _resultValue.status = status; + _resultValue.version = version; + return _resultValue; + } + } +} diff --git a/sdk/nodejs/README.md b/sdk/nodejs/README.md index e69de29..cc9ca90 100644 --- a/sdk/nodejs/README.md +++ b/sdk/nodejs/README.md @@ -0,0 +1 @@ +Strongly-typed Cert Manager installation diff --git a/sdk/nodejs/package.json b/sdk/nodejs/package.json index 4ea67d8..363e49a 100644 --- a/sdk/nodejs/package.json +++ b/sdk/nodejs/package.json @@ -8,16 +8,19 @@ "kind/component", "category/infrastructure" ], + "homepage": "https://pulumi.io", + "repository": "https://github.com/pulumi/pulumi-kubernetes-cert-manager", + "license": "Apache-2.0", "scripts": { "build": "tsc" }, "dependencies": { - "@pulumi/kubernetes": "^3.7.1", + "@pulumi/kubernetes": "^4.0.0", "@pulumi/pulumi": "^3.42.0" }, "devDependencies": { "@types/node": "^14", - "typescript": "^3.7.0" + "typescript": "^4.3.5" }, "pulumi": { "resource": true, diff --git a/sdk/python/pulumi_kubernetes_cert_manager/README.md b/sdk/python/pulumi_kubernetes_cert_manager/README.md index e69de29..cc9ca90 100644 --- a/sdk/python/pulumi_kubernetes_cert_manager/README.md +++ b/sdk/python/pulumi_kubernetes_cert_manager/README.md @@ -0,0 +1 @@ +Strongly-typed Cert Manager installation diff --git a/sdk/python/pulumi_kubernetes_cert_manager/_utilities.py b/sdk/python/pulumi_kubernetes_cert_manager/_utilities.py index e2ab3b8..55c46c1 100644 --- a/sdk/python/pulumi_kubernetes_cert_manager/_utilities.py +++ b/sdk/python/pulumi_kubernetes_cert_manager/_utilities.py @@ -4,11 +4,11 @@ import asyncio +import importlib.metadata import importlib.util import inspect import json import os -import pkg_resources import sys import typing @@ -72,7 +72,7 @@ def _get_semver_version(): # to receive a valid semver string when receiving requests from the language host, so it's our # responsibility as the library to convert our own PEP440 version into a valid semver string. - pep440_version_string = pkg_resources.require(root_package)[0].version + pep440_version_string = importlib.metadata.version(root_package) pep440_version = PEP440Version.parse(pep440_version_string) (major, minor, patch) = pep440_version.release prerelease = None diff --git a/sdk/python/setup.py b/sdk/python/setup.py index 02a7a91..2496425 100644 --- a/sdk/python/setup.py +++ b/sdk/python/setup.py @@ -18,11 +18,17 @@ def readme(): setup(name='pulumi_kubernetes_cert_manager', - python_requires='>=3.7', + python_requires='>=3.8', version=VERSION, + description="Strongly-typed Cert Manager installation", long_description=readme(), long_description_content_type='text/markdown', keywords='pulumi kubernetes cert-manager kind/component category/infrastructure', + url='https://pulumi.io', + project_urls={ + 'Repository': 'https://github.com/pulumi/pulumi-kubernetes-cert-manager' + }, + license='Apache-2.0', packages=find_packages(), package_data={ 'pulumi_kubernetes_cert_manager': [