Skip to content

Instantly share code, notes, and snippets.

@ElXreno
Created October 27, 2023 09:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ElXreno/cdfb66a0e68491bcaf64819bd630e926 to your computer and use it in GitHub Desktop.
Save ElXreno/cdfb66a0e68491bcaf64819bd630e926 to your computer and use it in GitHub Desktop.
CCM for Selectel on Talos
- op: add
path: /cluster/externalCloudProvider
value:
enabled: true
manifests:
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/v1.28.1/manifests/controller-manager/cloud-controller-manager-roles.yaml
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/v1.28.1/manifests/controller-manager/cloud-controller-manager-role-bindings.yaml
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/v1.28.1/manifests/cinder-csi-plugin/cinder-csi-controllerplugin-rbac.yaml
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/v1.28.1/manifests/cinder-csi-plugin/cinder-csi-controllerplugin.yaml
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/v1.28.1/manifests/cinder-csi-plugin/cinder-csi-nodeplugin-rbac.yaml
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/v1.28.1/manifests/cinder-csi-plugin/cinder-csi-nodeplugin.yaml
- https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/v1.28.1/manifests/cinder-csi-plugin/csi-cinder-driver.yaml
- op: add
path: /cluster/inlineManifests
value:
- name: ccm-stuff
contents: |
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: cloud-controller-manager
namespace: kube-system
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: openstack-cloud-controller-manager
namespace: kube-system
labels:
k8s-app: openstack-cloud-controller-manager
spec:
selector:
matchLabels:
k8s-app: openstack-cloud-controller-manager
updateStrategy:
type: RollingUpdate
template:
metadata:
labels:
k8s-app: openstack-cloud-controller-manager
spec:
nodeSelector:
node-role.kubernetes.io/control-plane: ""
securityContext:
runAsUser: 1001
tolerations:
- key: node.cloudprovider.kubernetes.io/uninitialized
value: "true"
effect: NoSchedule
- key: node-role.kubernetes.io/master
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
effect: NoSchedule
serviceAccountName: cloud-controller-manager
containers:
- name: openstack-cloud-controller-manager
image: registry.k8s.io/provider-os/openstack-cloud-controller-manager:v1.28.1
args:
- /bin/openstack-cloud-controller-manager
- --v=2
- --cluster-name=$(CLUSTER_NAME)
- --cloud-config=$(CLOUD_CONFIG)
- --cloud-provider=openstack
- --use-service-account-credentials=true
- --controllers=cloud-node-lifecycle,cloud-node-controller
- --bind-address=127.0.0.1
- --leader-elect-resource-name=openstack-cloud-controller-manager
volumeMounts:
- mountPath: /etc/config
name: cloud-config-volume
readOnly: true
resources:
requests:
cpu: 200m
env:
- name: CLOUD_CONFIG
value: /etc/config/cloud.conf
- name: CLUSTER_NAME
value: kubernetes
hostNetwork: true
volumes:
- name: cloud-config-volume
secret:
secretName: cloud-config
---
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: universal.ru-2c
annotations:
storageclass.kubernetes.io/is-default-class: 'true'
provisioner: cinder.csi.openstack.org
parameters:
type: universal.ru-2c
availability: ru-2c
fsType: ext4
allowVolumeExpansion: true
---
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment