mirror of
https://github.com/outbackdingo/proxmox-cloud-controller-manager.git
synced 2026-01-27 10:20:13 +00:00
ci: add github checks
Add github actions checks.
This commit is contained in:
51
.conform.yaml
Normal file
51
.conform.yaml
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
policies:
|
||||||
|
- type: commit
|
||||||
|
spec:
|
||||||
|
header:
|
||||||
|
length: 89
|
||||||
|
imperative: true
|
||||||
|
case: lower
|
||||||
|
invalidLastCharacters: .
|
||||||
|
body:
|
||||||
|
required: true
|
||||||
|
dco: false
|
||||||
|
gpg: false
|
||||||
|
spellcheck:
|
||||||
|
locale: US
|
||||||
|
maximumOfOneCommit: false
|
||||||
|
conventional:
|
||||||
|
types:
|
||||||
|
- build
|
||||||
|
- chore
|
||||||
|
- ci
|
||||||
|
- docs
|
||||||
|
- perf
|
||||||
|
- refactor
|
||||||
|
- revert
|
||||||
|
- style
|
||||||
|
- test
|
||||||
|
scopes:
|
||||||
|
- deps
|
||||||
|
- main
|
||||||
|
descriptionLength: 72
|
||||||
|
- type: license
|
||||||
|
spec:
|
||||||
|
skipPaths:
|
||||||
|
- .git/
|
||||||
|
allowPrecedingComments: false
|
||||||
|
header: |
|
||||||
|
/*
|
||||||
|
Copyright 2023 The Kubernetes Authors.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
1
.github/workflows/build-edge.yaml
vendored
1
.github/workflows/build-edge.yaml
vendored
@@ -33,5 +33,6 @@ jobs:
|
|||||||
- name: Build and push
|
- name: Build and push
|
||||||
run: make images
|
run: make images
|
||||||
env:
|
env:
|
||||||
|
USERNAME: ${{ github.repository_owner }}
|
||||||
PUSH: "true"
|
PUSH: "true"
|
||||||
TAG: "edge"
|
TAG: "edge"
|
||||||
|
|||||||
6
.github/workflows/build-test.yaml
vendored
6
.github/workflows/build-test.yaml
vendored
@@ -26,9 +26,11 @@ jobs:
|
|||||||
go-version-file: 'go.mod'
|
go-version-file: 'go.mod'
|
||||||
cache: true
|
cache: true
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: make build
|
|
||||||
- name: Lint
|
- name: Lint
|
||||||
uses: golangci/golangci-lint-action@v3
|
uses: golangci/golangci-lint-action@v3
|
||||||
with:
|
with:
|
||||||
args: --config=.golangci.yml
|
args: --config=.golangci.yml
|
||||||
|
- name: Unit
|
||||||
|
run: make unit
|
||||||
|
- name: Build
|
||||||
|
run: make build
|
||||||
|
|||||||
4
.github/workflows/charts.yaml
vendored
4
.github/workflows/charts.yaml
vendored
@@ -24,6 +24,4 @@ jobs:
|
|||||||
- name: Run helm chart linter
|
- name: Run helm chart linter
|
||||||
run: ct --config hack/ct.yml lint
|
run: ct --config hack/ct.yml lint
|
||||||
- name: Run helm template
|
- name: Run helm template
|
||||||
run: |
|
run: make helm-unit
|
||||||
helm template -n kube-system -f charts/talos-cloud-controller-manager/values-tests.yaml \
|
|
||||||
ccm charts/talos-cloud-controller-manager > /dev/null
|
|
||||||
|
|||||||
22
.github/workflows/conform.yaml
vendored
Normal file
22
.github/workflows/conform.yaml
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
name: Conformance check
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
conform:
|
||||||
|
name: Conformance
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
|
- name: Checkout main branch
|
||||||
|
run: git fetch --no-tags origin main:main
|
||||||
|
|
||||||
|
- name: Conform action
|
||||||
|
uses: talos-systems/conform@v0.1.0-alpha.27
|
||||||
34
.github/workflows/release-pre.yaml
vendored
Normal file
34
.github/workflows/release-pre.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: Release check
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-publish:
|
||||||
|
name: "Check release docs"
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: startsWith(github.head_ref, 'release-')
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Unshallow
|
||||||
|
run: git fetch --prune --unshallow
|
||||||
|
|
||||||
|
- name: Release version
|
||||||
|
shell: bash
|
||||||
|
id: release
|
||||||
|
run: |
|
||||||
|
echo "TAG=${GITHUB_HEAD_REF:8}" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Helm docs
|
||||||
|
uses: gabe565/setup-helm-docs-action@v1
|
||||||
|
|
||||||
|
- name: Generate
|
||||||
|
run: make docs
|
||||||
|
- name: Check
|
||||||
|
run: git diff --exit-code
|
||||||
33
.github/workflows/release.yaml
vendored
Normal file
33
.github/workflows/release.yaml
vendored
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v*'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-publish:
|
||||||
|
name: "Build image and publish"
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
- name: Unshallow
|
||||||
|
run: git fetch --prune --unshallow
|
||||||
|
|
||||||
|
- name: Set up docker buildx
|
||||||
|
run: make docker-init
|
||||||
|
- name: Github registry login
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.actor }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build and push
|
||||||
|
run: make images
|
||||||
|
env:
|
||||||
|
PUSH: "true"
|
||||||
36
Makefile
36
Makefile
@@ -21,7 +21,7 @@ else
|
|||||||
BUILD_ARGS += --output type=docker
|
BUILD_ARGS += --output type=docker
|
||||||
endif
|
endif
|
||||||
|
|
||||||
######
|
############
|
||||||
|
|
||||||
# Help Menu
|
# Help Menu
|
||||||
|
|
||||||
@@ -43,7 +43,10 @@ help: ## This help menu.
|
|||||||
@echo "$$HELP_MENU_HEADER"
|
@echo "$$HELP_MENU_HEADER"
|
||||||
@grep -E '^[a-zA-Z0-9%_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
@grep -E '^[a-zA-Z0-9%_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
||||||
|
|
||||||
|
############
|
||||||
|
#
|
||||||
# Build Abstractions
|
# Build Abstractions
|
||||||
|
#
|
||||||
|
|
||||||
build-all-archs:
|
build-all-archs:
|
||||||
@for arch in $(ARCHS); do $(MAKE) ARCH=$${arch} build ; done
|
@for arch in $(ARCHS); do $(MAKE) ARCH=$${arch} build ; done
|
||||||
@@ -58,25 +61,45 @@ build: ## Build
|
|||||||
-o bin/proxmox-cloud-controller-manager-$(ARCH) ./cmd/proxmox-cloud-controller-manager
|
-o bin/proxmox-cloud-controller-manager-$(ARCH) ./cmd/proxmox-cloud-controller-manager
|
||||||
|
|
||||||
.PHONY: run
|
.PHONY: run
|
||||||
run: build
|
run: build ## Run
|
||||||
./bin/proxmox-cloud-controller-manager-$(ARCH) --v=5 --kubeconfig=kubeconfig --cloud-config=proxmox-config.yaml --controllers=cloud-node,cloud-node-lifecycle \
|
./bin/proxmox-cloud-controller-manager-$(ARCH) --v=5 --kubeconfig=kubeconfig --cloud-config=proxmox-config.yaml --controllers=cloud-node,cloud-node-lifecycle \
|
||||||
--use-service-account-credentials --leader-elect=false --bind-address=127.0.0.1
|
--use-service-account-credentials --leader-elect=false --bind-address=127.0.0.1
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: ## Lint
|
lint: ## Lint Code
|
||||||
golangci-lint run --config .golangci.yml
|
golangci-lint run --config .golangci.yml
|
||||||
|
|
||||||
.PHONY: unit
|
.PHONY: unit
|
||||||
unit:
|
unit: ## Unit Tests
|
||||||
go test -tags=unit $(shell go list ./...) $(TESTARGS)
|
go test -tags=unit $(shell go list ./...) $(TESTARGS)
|
||||||
|
|
||||||
|
############
|
||||||
|
|
||||||
|
.PHONY: helm-unit
|
||||||
|
helm-unit: ## Helm Unit Tests
|
||||||
|
@helm lint charts/proxmox-cloud-controller-manager
|
||||||
|
@helm template -f charts/proxmox-cloud-controller-manager/ci/values.yaml \
|
||||||
|
proxmox-cloud-controller-manager charts/proxmox-cloud-controller-manager >/dev/null
|
||||||
|
|
||||||
.PHONY: docs
|
.PHONY: docs
|
||||||
docs:
|
docs:
|
||||||
helm template -n kube-system proxmox-cloud-controller-manager \
|
helm template -n kube-system proxmox-cloud-controller-manager \
|
||||||
|
-f charts/proxmox-cloud-controller-manager/values.edge.yaml \
|
||||||
--set-string image.tag=$(TAG) \
|
--set-string image.tag=$(TAG) \
|
||||||
charts/proxmox-cloud-controller-manager > docs/deploy/cloud-controller-manager.yml
|
charts/proxmox-cloud-controller-manager > docs/deploy/cloud-controller-manager.yml
|
||||||
|
helm template -n kube-system proxmox-cloud-controller-manager \
|
||||||
|
-f charts/proxmox-cloud-controller-manager/values.talos.yaml \
|
||||||
|
--set-string image.tag=$(TAG) \
|
||||||
|
charts/proxmox-cloud-controller-manager > docs/deploy/cloud-controller-manager-talos.yml
|
||||||
|
helm-docs charts/proxmox-cloud-controller-manager
|
||||||
|
|
||||||
# Docker stages
|
release-update:
|
||||||
|
git-chglog --config hack/chglog-config.yml -o CHANGELOG.md
|
||||||
|
|
||||||
|
############
|
||||||
|
#
|
||||||
|
# Docker Abstractions
|
||||||
|
#
|
||||||
|
|
||||||
docker-init:
|
docker-init:
|
||||||
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||||
@@ -87,8 +110,9 @@ docker-init:
|
|||||||
docker buildx inspect --bootstrap multiarch
|
docker buildx inspect --bootstrap multiarch
|
||||||
|
|
||||||
.PHONY: images
|
.PHONY: images
|
||||||
images:
|
images: ## Build images
|
||||||
@docker buildx build $(BUILD_ARGS) \
|
@docker buildx build $(BUILD_ARGS) \
|
||||||
--build-arg TAG=$(TAG) \
|
--build-arg TAG=$(TAG) \
|
||||||
|
--build-arg SHA=$(SHA) \
|
||||||
-t $(IMAGE):$(TAG) \
|
-t $(IMAGE):$(TAG) \
|
||||||
-f Dockerfile .
|
-f Dockerfile .
|
||||||
|
|||||||
4
OWNERS
Normal file
4
OWNERS
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
approvers:
|
||||||
|
- sergelogvinov
|
||||||
|
reviewers:
|
||||||
|
- sergelogvinov
|
||||||
@@ -2,11 +2,19 @@ apiVersion: v2
|
|||||||
name: proxmox-cloud-controller-manager
|
name: proxmox-cloud-controller-manager
|
||||||
description: A Helm chart for Kubernetes
|
description: A Helm chart for Kubernetes
|
||||||
type: application
|
type: application
|
||||||
|
home: https://github.com/sergelogvinov/proxmox-cloud-controller-manager
|
||||||
|
icon: https://proxmox.com/templates/yoo_nano2/favicon.ico
|
||||||
|
sources:
|
||||||
|
- https://github.com/sergelogvinov/proxmox-cloud-controller-manager
|
||||||
|
keywords:
|
||||||
|
- ccm
|
||||||
|
maintainers:
|
||||||
|
- name: sergelogvinov
|
||||||
|
|
||||||
# This is the chart version. This version number should be incremented each time you make changes
|
# This is the chart version. This version number should be incremented each time you make changes
|
||||||
# to the chart and its templates, including the app version.
|
# to the chart and its templates, including the app version.
|
||||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||||
version: 0.1.0
|
version: 0.1.1
|
||||||
|
|
||||||
# This is the version number of the application being deployed. This version number should be
|
# This is the version number of the application being deployed. This version number should be
|
||||||
# incremented each time you make changes to the application. Versions are not expected to
|
# incremented each time you make changes to the application. Versions are not expected to
|
||||||
|
|||||||
47
charts/proxmox-cloud-controller-manager/README.md
Normal file
47
charts/proxmox-cloud-controller-manager/README.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# proxmox-cloud-controller-manager
|
||||||
|
|
||||||
|
  
|
||||||
|
|
||||||
|
A Helm chart for Kubernetes
|
||||||
|
|
||||||
|
**Homepage:** <https://github.com/sergelogvinov/proxmox-cloud-controller-manager>
|
||||||
|
|
||||||
|
## Maintainers
|
||||||
|
|
||||||
|
| Name | Email | Url |
|
||||||
|
| ---- | ------ | --- |
|
||||||
|
| sergelogvinov | | |
|
||||||
|
|
||||||
|
## Source Code
|
||||||
|
|
||||||
|
* <https://github.com/sergelogvinov/proxmox-cloud-controller-manager>
|
||||||
|
|
||||||
|
## Values
|
||||||
|
|
||||||
|
| Key | Type | Default | Description |
|
||||||
|
|-----|------|---------|-------------|
|
||||||
|
| affinity | object | `{}` | Affinity for data pods assignment. ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity |
|
||||||
|
| config.clusters | list | `[]` | |
|
||||||
|
| enabledControllers | list | `["cloud-node","cloud-node-lifecycle"]` | List of controllers should be enabled. Use '*' to enable all controllers. Support only `cloud-node,cloud-node-lifecycle` controllers. |
|
||||||
|
| extraArgs | list | `[]` | Any extra arguments for talos-cloud-controller-manager |
|
||||||
|
| fullnameOverride | string | `""` | |
|
||||||
|
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||||
|
| image.repository | string | `"ghcr.io/sergelogvinov/proxmox-cloud-controller-manager"` | |
|
||||||
|
| image.tag | string | `""` | |
|
||||||
|
| imagePullSecrets | list | `[]` | |
|
||||||
|
| logVerbosityLevel | int | `2` | Log verbosity level. See https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md for description of individual verbosity levels. |
|
||||||
|
| nameOverride | string | `""` | |
|
||||||
|
| nodeSelector | object | `{}` | Node labels for data pods assignment. ref: https://kubernetes.io/docs/user-guide/node-selection/ |
|
||||||
|
| podAnnotations | object | `{}` | Annotations for data pods. ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ |
|
||||||
|
| podSecurityContext | object | `{"fsGroup":10258,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":10258,"runAsNonRoot":true,"runAsUser":10258}` | Pods Security Context. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod |
|
||||||
|
| priorityClassName | string | `"system-cluster-critical"` | CCM pods' priorityClassName. |
|
||||||
|
| replicaCount | int | `1` | |
|
||||||
|
| resources.requests.cpu | string | `"10m"` | |
|
||||||
|
| resources.requests.memory | string | `"32Mi"` | |
|
||||||
|
| securityContext | object | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"seccompProfile":{"type":"RuntimeDefault"}}` | Container Security Context. ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod |
|
||||||
|
| serviceAccount | object | `{"annotations":{},"create":true,"name":""}` | Pods Service Account. ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ |
|
||||||
|
| tolerations | list | `[{"effect":"NoSchedule","key":"node-role.kubernetes.io/control-plane","operator":"Exists"},{"effect":"NoSchedule","key":"node.cloudprovider.kubernetes.io/uninitialized","operator":"Exists"}]` | Tolerations for data pods assignment. ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ |
|
||||||
|
| updateStrategy | object | `{"rollingUpdate":{"maxUnavailable":1},"type":"RollingUpdate"}` | Deployment update stategy type. ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#updating-a-deployment |
|
||||||
|
|
||||||
|
----------------------------------------------
|
||||||
|
Autogenerated from chart metadata using [helm-docs v1.11.0](https://github.com/norwoodj/helm-docs/releases/v1.11.0)
|
||||||
27
charts/proxmox-cloud-controller-manager/ci/values.yaml
Normal file
27
charts/proxmox-cloud-controller-manager/ci/values.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
image:
|
||||||
|
repository: ghcr.io/sergelogvinov/proxmox-cloud-controller-manager
|
||||||
|
pullPolicy: Always
|
||||||
|
tag: edge
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
node-role.kubernetes.io/control-plane: ""
|
||||||
|
|
||||||
|
logVerbosityLevel: 4
|
||||||
|
|
||||||
|
enabledControllers:
|
||||||
|
- cloud-node
|
||||||
|
- cloud-node-lifecycle
|
||||||
|
|
||||||
|
config:
|
||||||
|
clusters:
|
||||||
|
- url: https://cluster-api-1.exmple.com:8006/api2/json
|
||||||
|
insecure: false
|
||||||
|
token_id: "user!token-id"
|
||||||
|
token_secret: "secret"
|
||||||
|
region: cluster-1
|
||||||
|
- url: https://cluster-api-2.exmple.com:8006/api2/json
|
||||||
|
insecure: false
|
||||||
|
token_id: "user!token-id"
|
||||||
|
token_secret: "secret"
|
||||||
|
region: cluster-2
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
|
|
||||||
image:
|
|
||||||
repository: ghcr.io/sergelogvinov/proxmox-cloud-controller-manager
|
|
||||||
pullPolicy: Always
|
|
||||||
tag: edge
|
|
||||||
|
|
||||||
logVerbosityLevel: 4
|
|
||||||
13
charts/proxmox-cloud-controller-manager/values.edge.yaml
Normal file
13
charts/proxmox-cloud-controller-manager/values.edge.yaml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
image:
|
||||||
|
pullPolicy: Always
|
||||||
|
tag: edge
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
node-role.kubernetes.io/control-plane: ""
|
||||||
|
|
||||||
|
logVerbosityLevel: 4
|
||||||
|
|
||||||
|
enabledControllers:
|
||||||
|
- cloud-node
|
||||||
|
- cloud-node-lifecycle
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
node-role.kubernetes.io/control-plane: ""
|
||||||
|
|
||||||
|
logVerbosityLevel: 4
|
||||||
|
|
||||||
|
enabledControllers:
|
||||||
|
- cloud-node-lifecycle
|
||||||
204
docs/deploy/cloud-controller-manager-talos.yml
Normal file
204
docs/deploy/cloud-controller-manager-talos.yml
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
---
|
||||||
|
# Source: proxmox-cloud-controller-manager/templates/serviceaccount.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: proxmox-cloud-controller-manager
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: proxmox-cloud-controller-manager-0.1.0
|
||||||
|
app.kubernetes.io/name: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/instance: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/version: "0.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
namespace: kube-system
|
||||||
|
---
|
||||||
|
# Source: proxmox-cloud-controller-manager/templates/secrets.yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: proxmox-cloud-controller-manager
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: proxmox-cloud-controller-manager-0.1.0
|
||||||
|
app.kubernetes.io/name: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/instance: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/version: "0.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
namespace: kube-system
|
||||||
|
data:
|
||||||
|
config.yaml: "Y2x1c3RlcnM6IFtd"
|
||||||
|
---
|
||||||
|
# Source: proxmox-cloud-controller-manager/templates/role.yaml
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: system:proxmox-cloud-controller-manager
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: proxmox-cloud-controller-manager-0.1.0
|
||||||
|
app.kubernetes.io/name: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/instance: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/version: "0.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- coordination.k8s.io
|
||||||
|
resources:
|
||||||
|
- leases
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- create
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- nodes
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- nodes/status
|
||||||
|
verbs:
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- serviceaccounts
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- serviceaccounts/token
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
---
|
||||||
|
# Source: proxmox-cloud-controller-manager/templates/rolebinding.yaml
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
metadata:
|
||||||
|
name: system:proxmox-cloud-controller-manager
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: system:proxmox-cloud-controller-manager
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: proxmox-cloud-controller-manager
|
||||||
|
namespace: kube-system
|
||||||
|
---
|
||||||
|
# Source: proxmox-cloud-controller-manager/templates/rolebinding.yaml
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: system:proxmox-cloud-controller-manager:extension-apiserver-authentication-reader
|
||||||
|
namespace: kube-system
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: extension-apiserver-authentication-reader
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: proxmox-cloud-controller-manager
|
||||||
|
namespace: kube-system
|
||||||
|
---
|
||||||
|
# Source: proxmox-cloud-controller-manager/templates/deployment.yaml
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: proxmox-cloud-controller-manager
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: proxmox-cloud-controller-manager-0.1.0
|
||||||
|
app.kubernetes.io/name: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/instance: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/version: "0.0.1"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
namespace: kube-system
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/instance: proxmox-cloud-controller-manager
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
checksum/config: c69436cb1e16c36ff708b1003d3ca4c6ee6484d2524e2ba7d9b68f473acaa1ca
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: proxmox-cloud-controller-manager
|
||||||
|
app.kubernetes.io/instance: proxmox-cloud-controller-manager
|
||||||
|
spec:
|
||||||
|
enableServiceLinks: false
|
||||||
|
priorityClassName: system-cluster-critical
|
||||||
|
serviceAccountName: proxmox-cloud-controller-manager
|
||||||
|
securityContext:
|
||||||
|
fsGroup: 10258
|
||||||
|
fsGroupChangePolicy: OnRootMismatch
|
||||||
|
runAsGroup: 10258
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 10258
|
||||||
|
containers:
|
||||||
|
- name: proxmox-cloud-controller-manager
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- ALL
|
||||||
|
seccompProfile:
|
||||||
|
type: RuntimeDefault
|
||||||
|
image: "ghcr.io/sergelogvinov/proxmox-cloud-controller-manager:edge"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command: ["/proxmox-cloud-controller-manager"]
|
||||||
|
args:
|
||||||
|
- --v=4
|
||||||
|
- --cloud-provider=proxmox
|
||||||
|
- --cloud-config=/etc/proxmox/config.yaml
|
||||||
|
- --controllers=cloud-node-lifecycle
|
||||||
|
- --leader-elect-resource-name=cloud-controller-manager-proxmox
|
||||||
|
- --use-service-account-credentials
|
||||||
|
- --secure-port=10258
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /healthz
|
||||||
|
port: 10258
|
||||||
|
scheme: HTTPS
|
||||||
|
initialDelaySeconds: 20
|
||||||
|
periodSeconds: 30
|
||||||
|
timeoutSeconds: 5
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 10m
|
||||||
|
memory: 32Mi
|
||||||
|
volumeMounts:
|
||||||
|
- name: cloud-config
|
||||||
|
mountPath: /etc/proxmox
|
||||||
|
readOnly: true
|
||||||
|
nodeSelector:
|
||||||
|
node-role.kubernetes.io/control-plane: ""
|
||||||
|
tolerations:
|
||||||
|
- effect: NoSchedule
|
||||||
|
key: node-role.kubernetes.io/control-plane
|
||||||
|
operator: Exists
|
||||||
|
- effect: NoSchedule
|
||||||
|
key: node.cloudprovider.kubernetes.io/uninitialized
|
||||||
|
operator: Exists
|
||||||
|
volumes:
|
||||||
|
- name: cloud-config
|
||||||
|
secret:
|
||||||
|
secretName: proxmox-cloud-controller-manager
|
||||||
|
defaultMode: 416 # 0640
|
||||||
@@ -162,10 +162,10 @@ spec:
|
|||||||
seccompProfile:
|
seccompProfile:
|
||||||
type: RuntimeDefault
|
type: RuntimeDefault
|
||||||
image: "ghcr.io/sergelogvinov/proxmox-cloud-controller-manager:edge"
|
image: "ghcr.io/sergelogvinov/proxmox-cloud-controller-manager:edge"
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: Always
|
||||||
command: ["/proxmox-cloud-controller-manager"]
|
command: ["/proxmox-cloud-controller-manager"]
|
||||||
args:
|
args:
|
||||||
- --v=2
|
- --v=4
|
||||||
- --cloud-provider=proxmox
|
- --cloud-provider=proxmox
|
||||||
- --cloud-config=/etc/proxmox/config.yaml
|
- --cloud-config=/etc/proxmox/config.yaml
|
||||||
- --controllers=cloud-node,cloud-node-lifecycle
|
- --controllers=cloud-node,cloud-node-lifecycle
|
||||||
@@ -188,6 +188,8 @@ spec:
|
|||||||
- name: cloud-config
|
- name: cloud-config
|
||||||
mountPath: /etc/proxmox
|
mountPath: /etc/proxmox
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
nodeSelector:
|
||||||
|
node-role.kubernetes.io/control-plane: ""
|
||||||
tolerations:
|
tolerations:
|
||||||
- effect: NoSchedule
|
- effect: NoSchedule
|
||||||
key: node-role.kubernetes.io/control-plane
|
key: node-role.kubernetes.io/control-plane
|
||||||
|
|||||||
33
hack/CHANGELOG.tpl.md
Executable file
33
hack/CHANGELOG.tpl.md
Executable file
@@ -0,0 +1,33 @@
|
|||||||
|
{{ range .Versions }}
|
||||||
|
<a name="{{ .Tag.Name }}"></a>
|
||||||
|
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }})
|
||||||
|
|
||||||
|
Welcome to the {{ .Tag.Name }} release of Kubernetes cloud controller manager for Proxmox!
|
||||||
|
|
||||||
|
{{ if .CommitGroups -}}
|
||||||
|
{{ range .CommitGroups -}}
|
||||||
|
### {{ .Title }}
|
||||||
|
|
||||||
|
{{ range .Commits -}}
|
||||||
|
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ .Subject }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end -}}
|
||||||
|
{{ end -}}
|
||||||
|
|
||||||
|
|
||||||
|
### Changelog
|
||||||
|
|
||||||
|
{{ range .Commits -}}{{ if ne .Subject "" -}}
|
||||||
|
* {{ .Hash.Short }} {{ .Header }}
|
||||||
|
{{ end }}{{ end }}
|
||||||
|
|
||||||
|
{{- if .NoteGroups -}}
|
||||||
|
{{ range .NoteGroups -}}
|
||||||
|
### {{ .Title }}
|
||||||
|
|
||||||
|
{{ range .Notes }}
|
||||||
|
{{ .Body }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end -}}
|
||||||
|
{{ end -}}
|
||||||
|
{{ end -}}
|
||||||
24
hack/chglog-config.yml
Executable file
24
hack/chglog-config.yml
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
style: github
|
||||||
|
template: CHANGELOG.tpl.md
|
||||||
|
info:
|
||||||
|
title: CHANGELOG
|
||||||
|
repository_url: https://github.com/sergelogvinov/proxmox-cloud-controller-manager
|
||||||
|
options:
|
||||||
|
commits:
|
||||||
|
filters:
|
||||||
|
Type:
|
||||||
|
- feat
|
||||||
|
- fix
|
||||||
|
commit_groups:
|
||||||
|
title_maps:
|
||||||
|
feat: Features
|
||||||
|
fix: Bug Fixes
|
||||||
|
header:
|
||||||
|
pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
|
||||||
|
pattern_maps:
|
||||||
|
- Type
|
||||||
|
- Scope
|
||||||
|
- Subject
|
||||||
|
notes:
|
||||||
|
keywords:
|
||||||
|
- BREAKING CHANGE
|
||||||
9
hack/ct.yml
Normal file
9
hack/ct.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
helm-extra-args: --timeout 300s
|
||||||
|
check-version-increment: true
|
||||||
|
debug: true
|
||||||
|
chart-dirs:
|
||||||
|
- charts
|
||||||
|
validate-maintainers: true
|
||||||
|
namespace: default
|
||||||
|
release-label: test
|
||||||
|
target-branch: main
|
||||||
@@ -136,6 +136,8 @@ func (i *instances) InstanceMetadata(_ context.Context, node *v1.Node) (*cloudpr
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
klog.Infof("instances.InstanceMetadata() is kubelet has --cloud-provider=external on the node %s?", node.Name)
|
||||||
|
|
||||||
return &cloudprovider.InstanceMetadata{}, nil
|
return &cloudprovider.InstanceMetadata{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user