Merge pull request #2888 from mjura/gke-k8s-1.27-2.8

[v2.8] Add k8s v1.27 support to gke-operator
pull/2892/head
Michal Jura 2023-08-23 12:22:00 +02:00 committed by GitHub
commit fad26c0189
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
17 changed files with 476 additions and 7 deletions

View File

@ -0,0 +1,12 @@
annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/namespace: cattle-system
catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux,windows
catalog.cattle.io/release-name: rancher-gke-operator-crd
apiVersion: v2
appVersion: 1.2.0-rc1
description: GKE Operator CustomResourceDefinitions
name: rancher-gke-operator-crd
version: 103.0.1+up1.2.0-rc1

View File

@ -0,0 +1,250 @@
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
helm.sh/resource-policy: keep
name: gkeclusterconfigs.gke.cattle.io
spec:
group: gke.cattle.io
names:
kind: GKEClusterConfig
plural: gkeclusterconfigs
shortNames:
- gkecc
singular: gkeclusterconfig
preserveUnknownFields: false
scope: Namespaced
versions:
- name: v1
schema:
openAPIV3Schema:
properties:
spec:
properties:
clusterAddons:
nullable: true
properties:
horizontalPodAutoscaling:
type: boolean
httpLoadBalancing:
type: boolean
networkPolicyConfig:
type: boolean
type: object
clusterIpv4Cidr:
nullable: true
type: string
clusterName:
nullable: true
type: string
description:
nullable: true
type: string
enableKubernetesAlpha:
nullable: true
type: boolean
googleCredentialSecret:
nullable: true
type: string
imported:
type: boolean
ipAllocationPolicy:
nullable: true
properties:
clusterIpv4CidrBlock:
nullable: true
type: string
clusterSecondaryRangeName:
nullable: true
type: string
createSubnetwork:
type: boolean
nodeIpv4CidrBlock:
nullable: true
type: string
servicesIpv4CidrBlock:
nullable: true
type: string
servicesSecondaryRangeName:
nullable: true
type: string
subnetworkName:
nullable: true
type: string
useIpAliases:
type: boolean
type: object
kubernetesVersion:
nullable: true
type: string
labels:
additionalProperties:
nullable: true
type: string
nullable: true
type: object
locations:
items:
nullable: true
type: string
nullable: true
type: array
loggingService:
nullable: true
type: string
maintenanceWindow:
nullable: true
type: string
masterAuthorizedNetworks:
nullable: true
properties:
cidrBlocks:
items:
properties:
cidrBlock:
nullable: true
type: string
displayName:
nullable: true
type: string
type: object
nullable: true
type: array
enabled:
type: boolean
type: object
monitoringService:
nullable: true
type: string
network:
nullable: true
type: string
networkPolicyEnabled:
nullable: true
type: boolean
nodePools:
items:
properties:
autoscaling:
nullable: true
properties:
enabled:
type: boolean
maxNodeCount:
type: integer
minNodeCount:
type: integer
type: object
config:
nullable: true
properties:
diskSizeGb:
type: integer
diskType:
nullable: true
type: string
imageType:
nullable: true
type: string
labels:
additionalProperties:
nullable: true
type: string
nullable: true
type: object
localSsdCount:
type: integer
machineType:
nullable: true
type: string
oauthScopes:
items:
nullable: true
type: string
nullable: true
type: array
preemptible:
type: boolean
tags:
items:
nullable: true
type: string
nullable: true
type: array
taints:
items:
properties:
effect:
nullable: true
type: string
key:
nullable: true
type: string
value:
nullable: true
type: string
type: object
nullable: true
type: array
type: object
initialNodeCount:
nullable: true
type: integer
management:
nullable: true
properties:
autoRepair:
type: boolean
autoUpgrade:
type: boolean
type: object
maxPodsConstraint:
nullable: true
type: integer
name:
nullable: true
type: string
version:
nullable: true
type: string
type: object
nullable: true
type: array
privateClusterConfig:
nullable: true
properties:
enablePrivateEndpoint:
type: boolean
enablePrivateNodes:
type: boolean
masterIpv4CidrBlock:
nullable: true
type: string
type: object
projectID:
nullable: true
type: string
region:
nullable: true
type: string
subnetwork:
nullable: true
type: string
zone:
nullable: true
type: string
type: object
status:
properties:
failureMessage:
nullable: true
type: string
phase:
nullable: true
type: string
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@ -0,0 +1,20 @@
annotations:
catalog.cattle.io/auto-install: rancher-gke-operator-crd=match
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/kube-version: '>= 1.20.0-0 < 1.28.0-0'
catalog.cattle.io/namespace: cattle-system
catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux,windows
catalog.cattle.io/provides-gvr: gkeclusterconfigs.gke.cattle.io/v1
catalog.cattle.io/rancher-version: '>= 2.8.0-0 < 2.9.0-0'
catalog.cattle.io/release-name: rancher-gke-operator
catalog.cattle.io/scope: management
apiVersion: v2
appVersion: 1.2.0-rc1
description: A Helm chart for provisioning GKE clusters
home: https://github.com/rancher/gke-operator
name: rancher-gke-operator
sources:
- https://github.com/rancher/gke-operator
version: 103.0.1+up1.2.0-rc1

View File

@ -0,0 +1,4 @@
You have deployed the Rancher GKE operator
Version: {{ .Chart.AppVersion }}
Description: This operator provisions GKE clusters
from GKEClusterConfig CRs.

View File

@ -0,0 +1,25 @@
{{/* vim: set filetype=mustache: */}}
{{- define "system_default_registry" -}}
{{- if .Values.global.cattle.systemDefaultRegistry -}}
{{- printf "%s/" .Values.global.cattle.systemDefaultRegistry -}}
{{- else -}}
{{- "" -}}
{{- end -}}
{{- end -}}
{{/*
Windows cluster will add default taint for linux nodes,
add below linux tolerations to workloads could be scheduled to those linux nodes
*/}}
{{- define "linux-node-tolerations" -}}
- key: "cattle.io/os"
value: "linux"
effect: "NoSchedule"
operator: "Equal"
{{- end -}}
{{- define "linux-node-selector" -}}
kubernetes.io/os: linux
{{- end -}}

View File

@ -0,0 +1,15 @@
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: gke-operator
namespace: cattle-system
rules:
- apiGroups: ['']
resources: ['secrets']
verbs: ['get', 'list', 'create', 'watch']
- apiGroups: ['gke.cattle.io']
resources: ['gkeclusterconfigs']
verbs: ['get', 'list', 'update', 'watch']
- apiGroups: ['gke.cattle.io']
resources: ['gkeclusterconfigs/status']
verbs: ['update']

View File

@ -0,0 +1,13 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: gke-operator
namespace: cattle-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: gke-operator
subjects:
- kind: ServiceAccount
name: gke-operator
namespace: cattle-system

View File

@ -0,0 +1,61 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: gke-config-operator
namespace: cattle-system
spec:
replicas: 1
selector:
matchLabels:
ke.cattle.io/operator: gke
template:
metadata:
labels:
ke.cattle.io/operator: gke
spec:
nodeSelector: {{ include "linux-node-selector" . | nindent 8 }}
{{- if .Values.nodeSelector }}
{{ toYaml .Values.nodeSelector | indent 8 }}
{{- end }}
tolerations: {{ include "linux-node-tolerations" . | nindent 8 }}
{{- if .Values.tolerations }}
{{ toYaml .Values.tolerations | indent 8 }}
{{- end }}
serviceAccountName: gke-operator
{{- if .Values.priorityClassName }}
priorityClassName: "{{.Values.priorityClassName}}"
{{- end }}
securityContext:
fsGroup: 1007
runAsUser: 1007
containers:
- name: rancher-gke-operator
image: {{ template "system_default_registry" . }}{{ .Values.gkeOperator.image.repository }}:{{ .Values.gkeOperator.image.tag }}
imagePullPolicy: IfNotPresent
env:
- name: HTTP_PROXY
value: {{ .Values.httpProxy }}
- name: HTTPS_PROXY
value: {{ .Values.httpsProxy }}
- name: NO_PROXY
value: {{ .Values.noProxy }}
{{- if .Values.additionalTrustedCAs }}
# gke-operator mounts the additional CAs in two places:
volumeMounts:
# This directory is owned by the gke-operator user so c_rehash works here.
- mountPath: /etc/rancher/ssl/ca-additional.pem
name: tls-ca-additional-volume
subPath: ca-additional.pem
readOnly: true
# This directory is root-owned so c_rehash doesn't work here,
# but the cert is here in case update-ca-certificates is called in the future or by the OS.
- mountPath: /etc/pki/trust/anchors/ca-additional.pem
name: tls-ca-additional-volume
subPath: ca-additional.pem
readOnly: true
volumes:
- name: tls-ca-additional-volume
secret:
defaultMode: 0400
secretName: tls-ca-additional
{{- end }}

View File

@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
namespace: cattle-system
name: gke-operator

View File

@ -0,0 +1,22 @@
global:
cattle:
systemDefaultRegistry: ""
gkeOperator:
image:
repository: rancher/gke-operator
tag: v1.2.0-rc1
httpProxy: ""
httpsProxy: ""
noProxy: ""
additionalTrustedCAs: false
## Node labels for pod assignment
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## List of node taints to tolerate (requires Kubernetes >= 1.6)
tolerations: []
## PriorityClassName assigned to deployment.
priorityClassName: ""

View File

@ -8248,6 +8248,30 @@ entries:
- assets/rancher-gatekeeper-crd/rancher-gatekeeper-crd-3.1.100.tgz
version: 3.1.100
rancher-gke-operator:
- annotations:
catalog.cattle.io/auto-install: rancher-gke-operator-crd=match
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/kube-version: '>= 1.20.0-0 < 1.28.0-0'
catalog.cattle.io/namespace: cattle-system
catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux,windows
catalog.cattle.io/provides-gvr: gkeclusterconfigs.gke.cattle.io/v1
catalog.cattle.io/rancher-version: '>= 2.8.0-0 < 2.9.0-0'
catalog.cattle.io/release-name: rancher-gke-operator
catalog.cattle.io/scope: management
apiVersion: v2
appVersion: 1.2.0-rc1
created: "2023-08-21T18:18:20.261514015+02:00"
description: A Helm chart for provisioning GKE clusters
digest: 9d5435e630fbe6644bc296bcb6bf643f2bedad48324cbd0120b101ab4d878632
home: https://github.com/rancher/gke-operator
name: rancher-gke-operator
sources:
- https://github.com/rancher/gke-operator
urls:
- assets/rancher-gke-operator/rancher-gke-operator-103.0.1+up1.2.0-rc1.tgz
version: 103.0.1+up1.2.0-rc1
- annotations:
catalog.cattle.io/auto-install: rancher-gke-operator-crd=match
catalog.cattle.io/certified: rancher
@ -8391,6 +8415,22 @@ entries:
- assets/rancher-gke-operator/rancher-gke-operator-100.0.0+up1.1.1.tgz
version: 100.0.0+up1.1.1
rancher-gke-operator-crd:
- annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
catalog.cattle.io/namespace: cattle-system
catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux,windows
catalog.cattle.io/release-name: rancher-gke-operator-crd
apiVersion: v2
appVersion: 1.2.0-rc1
created: "2023-08-21T18:18:21.844922109+02:00"
description: GKE Operator CustomResourceDefinitions
digest: f3349f7fed0bed3f7af97c8ee5129297ff61fc46b96857fc655548c172148646
name: rancher-gke-operator-crd
urls:
- assets/rancher-gke-operator-crd/rancher-gke-operator-crd-103.0.1+up1.2.0-rc1.tgz
version: 103.0.1+up1.2.0-rc1
- annotations:
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"

View File

@ -1,3 +1,2 @@
url: https://github.com/rancher/gke-operator/releases/download/v1.1.5/rancher-gke-operator-crd-1.1.5.tgz
version: 103.0.0
doNotRelease: true
url: https://github.com/rancher/gke-operator/releases/download/v1.2.0-rc1/rancher-gke-operator-crd-1.2.0-rc1.tgz
version: 103.0.1

View File

@ -5,7 +5,7 @@
catalog.cattle.io/certified: rancher
catalog.cattle.io/hidden: "true"
- catalog.cattle.io/kube-version: '>= 1.18.0-0'
+ catalog.cattle.io/kube-version: '>= 1.20.0-0 < 1.27.0-0'
+ catalog.cattle.io/kube-version: '>= 1.20.0-0 < 1.28.0-0'
catalog.cattle.io/namespace: cattle-system
catalog.cattle.io/os: linux
catalog.cattle.io/permits-os: linux,windows

View File

@ -1,3 +1,2 @@
url: https://github.com/rancher/gke-operator/releases/download/v1.1.5/rancher-gke-operator-1.1.5.tgz
version: 103.0.0
doNotRelease: true
url: https://github.com/rancher/gke-operator/releases/download/v1.2.0-rc1/rancher-gke-operator-1.2.0-rc1.tgz
version: 103.0.1

View File

@ -14,3 +14,7 @@ rancher-aks-operator:
- 103.0.0+up1.2.0-rc1
rancher-aks-operator-crd:
- 103.0.0+up1.2.0-rc1
rancher-gke-operator:
- 103.0.1+up1.2.0-rc1
rancher-gke-operator-crd:
- 103.0.1+up1.2.0-rc1