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 {
|
if a.AssetsLocation != nil && a.AssetsLocation.ContainerProxy != nil {
|
||||||
containerProxy := strings.TrimRight(*a.AssetsLocation.ContainerProxy, "/")
|
containerProxy := strings.TrimRight(*a.AssetsLocation.ContainerProxy, "/")
|
||||||
normalized := image
|
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.Kind = "Addons"
|
||||||
addons.ObjectMeta.Name = "bootstrap"
|
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"
|
key := "core.addons.k8s.io"
|
||||||
version := "1.4.0"
|
version := "1.4.0"
|
||||||
|
|
|
@ -89,6 +89,7 @@ func (tf *TemplateFunctions) AddTo(dest template.FuncMap, secretStore fi.SecretS
|
||||||
return tf.cluster.Spec.KubeDNS
|
return tf.cluster.Spec.KubeDNS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dest["KopsControllerArgv"] = tf.KopsControllerArgv
|
||||||
dest["DnsControllerArgv"] = tf.DnsControllerArgv
|
dest["DnsControllerArgv"] = tf.DnsControllerArgv
|
||||||
dest["ExternalDnsArgv"] = tf.ExternalDnsArgv
|
dest["ExternalDnsArgv"] = tf.ExternalDnsArgv
|
||||||
|
|
||||||
|
@ -247,6 +248,24 @@ func (tf *TemplateFunctions) DnsControllerArgv() ([]string, error) {
|
||||||
return argv, nil
|
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) {
|
func (tf *TemplateFunctions) ExternalDnsArgv() ([]string, error) {
|
||||||
var argv []string
|
var argv []string
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue