mirror of https://github.com/kubernetes/kops.git
Add kops-controller to default adddons
This commit is contained in:
parent
3ccc84dcf8
commit
6cb341dfeb
|
@ -148,6 +148,17 @@ func (a *AssetBuilder) RemapImage(image string) (string, error) {
|
|||
}
|
||||
}
|
||||
|
||||
if strings.HasPrefix(image, "kope/kops-controller:") {
|
||||
// To use user-defined DNS Controller:
|
||||
// 1. DOCKER_REGISTRY=[your docker hub repo] make kops-controller-push
|
||||
// 2. export KOPSCONTROLLER_IMAGE=[your docker hub repo]
|
||||
// 3. make kops and create/apply cluster
|
||||
override := os.Getenv("KOPSCONTROLLER_IMAGE")
|
||||
if override != "" {
|
||||
image = override
|
||||
}
|
||||
}
|
||||
|
||||
if a.AssetsLocation != nil && a.AssetsLocation.ContainerProxy != nil {
|
||||
containerProxy := strings.TrimRight(*a.AssetsLocation.ContainerProxy, "/")
|
||||
normalized := image
|
||||
|
|
|
@ -0,0 +1,95 @@
|
|||
kind: Deployment
|
||||
apiVersion: apps/v1
|
||||
metadata:
|
||||
name: kops-controller
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-addon: kops-controller.addons.k8s.io
|
||||
k8s-app: kops-controller
|
||||
version: v1.14.0-alpha.1
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
k8s-app: kops-controller
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
k8s-addon: kops-controller.addons.k8s.io
|
||||
k8s-app: kops-controller
|
||||
version: v1.14.0-alpha.1
|
||||
annotations:
|
||||
scheduler.alpha.kubernetes.io/critical-pod: ''
|
||||
spec:
|
||||
tolerations:
|
||||
- key: "node-role.kubernetes.io/master"
|
||||
effect: NoSchedule
|
||||
nodeSelector:
|
||||
node-role.kubernetes.io/master: ""
|
||||
dnsPolicy: Default # Don't use cluster DNS (we are likely running before kube-dns)
|
||||
hostNetwork: true
|
||||
serviceAccount: kops-controller
|
||||
containers:
|
||||
- name: kops-controller
|
||||
image: kope/kops-controller:1.14.0-alpha.1
|
||||
command:
|
||||
{{ range $arg := KopsControllerArgv }}
|
||||
- "{{ $arg }}"
|
||||
{{ end }}
|
||||
{{- if .EgressProxy }}
|
||||
env:
|
||||
{{ range $name, $value := ProxyEnv }}
|
||||
- name: {{ $name }}
|
||||
value: {{ $value }}
|
||||
{{ end }}
|
||||
{{- end }}
|
||||
resources:
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 50Mi
|
||||
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: kops-controller
|
||||
namespace: kube-system
|
||||
labels:
|
||||
k8s-addon: kops-controller.addons.k8s.io
|
||||
|
||||
---
|
||||
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
k8s-addon: kops-controller.addons.k8s.io
|
||||
name: kops-controller
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- nodes
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- patch
|
||||
|
||||
---
|
||||
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
k8s-addon: kops-controller.addons.k8s.io
|
||||
name: kops-controller
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kops-controller
|
||||
subjects:
|
||||
- apiGroup: rbac.authorization.k8s.io
|
||||
kind: User
|
||||
name: system:serviceaccount:kube-system:kops-controller
|
|
@ -113,6 +113,26 @@ func (b *BootstrapChannelBuilder) buildAddons() *channelsapi.Addons {
|
|||
addons.Kind = "Addons"
|
||||
addons.ObjectMeta.Name = "bootstrap"
|
||||
|
||||
{
|
||||
key := "kops-controller.addons.k8s.io"
|
||||
version := "1.14.0-alpha.1"
|
||||
|
||||
{
|
||||
location := key + "/k8s-1.16.yaml"
|
||||
id := "k8s-1.16"
|
||||
|
||||
addons.Spec.Addons = append(addons.Spec.Addons, &channelsapi.AddonSpec{
|
||||
Name: fi.String(key),
|
||||
Version: fi.String(version),
|
||||
Selector: map[string]string{"k8s-addon": key},
|
||||
Manifest: fi.String(location),
|
||||
KubernetesVersion: ">=1.16.0-alpha.0",
|
||||
Id: id,
|
||||
})
|
||||
manifests[key+"-"+id] = "addons/" + location
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
key := "core.addons.k8s.io"
|
||||
version := "1.4.0"
|
||||
|
|
|
@ -89,6 +89,7 @@ func (tf *TemplateFunctions) AddTo(dest template.FuncMap, secretStore fi.SecretS
|
|||
return tf.cluster.Spec.KubeDNS
|
||||
}
|
||||
|
||||
dest["KopsControllerArgv"] = tf.KopsControllerArgv
|
||||
dest["DnsControllerArgv"] = tf.DnsControllerArgv
|
||||
dest["ExternalDnsArgv"] = tf.ExternalDnsArgv
|
||||
|
||||
|
@ -247,6 +248,24 @@ func (tf *TemplateFunctions) DnsControllerArgv() ([]string, error) {
|
|||
return argv, nil
|
||||
}
|
||||
|
||||
// KopsControllerArgv returns the args to kops-controller
|
||||
func (tf *TemplateFunctions) KopsControllerArgv() ([]string, error) {
|
||||
var argv []string
|
||||
|
||||
argv = append(argv, "/usr/bin/kops-controller")
|
||||
|
||||
argv = append(argv, "--cloud="+tf.cluster.Spec.CloudProvider)
|
||||
argv = append(argv, "--config="+tf.cluster.Spec.ConfigBase)
|
||||
|
||||
// Disable metrics (avoid port conflicts, also risky because we are host network)
|
||||
argv = append(argv, "--metrics-addr=0")
|
||||
|
||||
// Verbose, but not crazy logging
|
||||
argv = append(argv, "--v=2")
|
||||
|
||||
return argv, nil
|
||||
}
|
||||
|
||||
func (tf *TemplateFunctions) ExternalDnsArgv() ([]string, error) {
|
||||
var argv []string
|
||||
|
||||
|
|
Loading…
Reference in New Issue