mirror of
https://github.com/outbackdingo/proxmox-cloud-controller-manager.git
synced 2026-01-27 02:20:02 +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
|
||||
run: make images
|
||||
env:
|
||||
USERNAME: ${{ github.repository_owner }}
|
||||
PUSH: "true"
|
||||
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'
|
||||
cache: true
|
||||
|
||||
- name: Build
|
||||
run: make build
|
||||
- name: Lint
|
||||
uses: golangci/golangci-lint-action@v3
|
||||
with:
|
||||
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
|
||||
run: ct --config hack/ct.yml lint
|
||||
- name: Run helm template
|
||||
run: |
|
||||
helm template -n kube-system -f charts/talos-cloud-controller-manager/values-tests.yaml \
|
||||
ccm charts/talos-cloud-controller-manager > /dev/null
|
||||
run: make helm-unit
|
||||
|
||||
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
|
||||
endif
|
||||
|
||||
######
|
||||
############
|
||||
|
||||
# Help Menu
|
||||
|
||||
@@ -43,7 +43,10 @@ help: ## This help menu.
|
||||
@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}'
|
||||
|
||||
############
|
||||
#
|
||||
# Build Abstractions
|
||||
#
|
||||
|
||||
build-all-archs:
|
||||
@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
|
||||
|
||||
.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 \
|
||||
--use-service-account-credentials --leader-elect=false --bind-address=127.0.0.1
|
||||
|
||||
.PHONY: lint
|
||||
lint: ## Lint
|
||||
lint: ## Lint Code
|
||||
golangci-lint run --config .golangci.yml
|
||||
|
||||
.PHONY: unit
|
||||
unit:
|
||||
unit: ## Unit Tests
|
||||
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
|
||||
docs:
|
||||
helm template -n kube-system proxmox-cloud-controller-manager \
|
||||
-f charts/proxmox-cloud-controller-manager/values.edge.yaml \
|
||||
--set-string image.tag=$(TAG) \
|
||||
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 run --rm --privileged multiarch/qemu-user-static:register --reset
|
||||
@@ -87,8 +110,9 @@ docker-init:
|
||||
docker buildx inspect --bootstrap multiarch
|
||||
|
||||
.PHONY: images
|
||||
images:
|
||||
images: ## Build images
|
||||
@docker buildx build $(BUILD_ARGS) \
|
||||
--build-arg TAG=$(TAG) \
|
||||
--build-arg SHA=$(SHA) \
|
||||
-t $(IMAGE):$(TAG) \
|
||||
-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
|
||||
description: A Helm chart for Kubernetes
|
||||
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
|
||||
# to the chart and its templates, including the app version.
|
||||
# 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
|
||||
# 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:
|
||||
type: RuntimeDefault
|
||||
image: "ghcr.io/sergelogvinov/proxmox-cloud-controller-manager:edge"
|
||||
imagePullPolicy: IfNotPresent
|
||||
imagePullPolicy: Always
|
||||
command: ["/proxmox-cloud-controller-manager"]
|
||||
args:
|
||||
- --v=2
|
||||
- --v=4
|
||||
- --cloud-provider=proxmox
|
||||
- --cloud-config=/etc/proxmox/config.yaml
|
||||
- --controllers=cloud-node,cloud-node-lifecycle
|
||||
@@ -188,6 +188,8 @@ spec:
|
||||
- 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
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
klog.Infof("instances.InstanceMetadata() is kubelet has --cloud-provider=external on the node %s?", node.Name)
|
||||
|
||||
return &cloudprovider.InstanceMetadata{}, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user