kops/federation/model/manifest.yaml

154 lines
3.9 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: {{.FEDERATION_NAMESPACE}}
---
apiVersion: v1
kind: Service
metadata:
name: {{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}
namespace: {{.FEDERATION_NAMESPACE}}
labels:
app: federated-cluster
annotations:
dns.alpha.kubernetes.io/external: {{.EXTERNAL_HOSTNAME}}
spec:
type: LoadBalancer
selector:
app: federated-cluster
module: federation-apiserver
ports:
- name: https
protocol: TCP
port: 443
targetPort: 443
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}-etcd-claim
annotations:
volume.alpha.kubernetes.io/storage-class: "yes"
namespace: {{.FEDERATION_NAMESPACE}}
labels:
app: federated-cluster
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}
namespace: {{.FEDERATION_NAMESPACE}}
labels:
app: federated-cluster
spec:
template:
metadata:
name: federation-apiserver
labels:
app: federated-cluster
module: federation-apiserver
spec:
containers:
- name: apiserver
image: {{.FEDERATION_APISERVER_IMAGE_REPO}}:{{.FEDERATION_APISERVER_IMAGE_TAG}}
command:
- /hyperkube
- federation-apiserver
- --bind-address=0.0.0.0
- --etcd-servers=http://localhost:2379
- --service-cluster-ip-range={{.FEDERATION_SERVICE_CIDR}}
- --secure-port=443
- --external-hostname={{.EXTERNAL_HOSTNAME}}
- --client-ca-file=/srv/kubernetes/ca.crt
- --basic-auth-file=/srv/kubernetes/basic-auth.csv
- --tls-cert-file=/srv/kubernetes/server.cert
- --tls-private-key-file=/srv/kubernetes/server.key
- --admission-control={{.FEDERATION_ADMISSION_CONTROL}}
- --token-auth-file=/srv/kubernetes/known-tokens.csv
ports:
- containerPort: 443
name: https
- containerPort: 8080
name: local
volumeMounts:
- name: federation-apiserver-secrets
mountPath: /srv/kubernetes/
readOnly: true
- name: etcd
image: quay.io/coreos/etcd:v2.3.3
command:
- /etcd
- --data-dir
- /var/etcd/data
volumeMounts:
- mountPath: /var/etcd
name: varetcd
volumes:
- name: federation-apiserver-secrets
secret:
secretName: federation-apiserver-secrets
- name: varetcd
persistentVolumeClaim:
claimName: {{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}-etcd-claim
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{.FEDERATION_CONTROLLER_MANAGER_DEPLOYMENT_NAME}}
namespace: {{.FEDERATION_NAMESPACE}}
labels:
app: federated-cluster
spec:
template:
metadata:
name: federation-controller-manager
labels:
app: federated-cluster
module: federation-controller-manager
spec:
volumes:
- name: ssl-certs
hostPath:
path: /etc/ssl/certs
containers:
- name: controller-manager
volumeMounts:
- name: ssl-certs
readOnly: true
mountPath: /etc/ssl/certs
image: {{.FEDERATION_CONTROLLER_MANAGER_IMAGE_REPO}}:{{.FEDERATION_CONTROLLER_MANAGER_IMAGE_TAG}}
command:
- /hyperkube
- federation-controller-manager
- --master=https://{{.FEDERATION_APISERVER_DEPLOYMENT_NAME}}:443
- --dns-provider={{.FEDERATION_DNS_PROVIDER}}
- --dns-provider-config={{.FEDERATION_DNS_PROVIDER_CONFIG}}
- --federation-name={{.FEDERATION_NAME}}
- --zone-name={{.DNS_ZONE_NAME}}
ports:
- containerPort: 443
name: https
- containerPort: 8080
name: local
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace