Deliver ViNo CR in multi-tenant type Airship Phase
This adds a new target cluster workload phase for deploying a ViNo CR to the multi-tenant site type delivery. Closes: #106 Change-Id: I62ab83e7a027f1daba2948159b72a4b23e5f347c
This commit is contained in:
parent
409276c04a
commit
76cf9e1a83
3
manifests/function/workload-config/kustomization.yaml
Normal file
3
manifests/function/workload-config/kustomization.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
resources:
|
||||||
|
- vino-cr.yaml
|
||||||
|
- network-template-secret.yaml
|
@ -0,0 +1,50 @@
|
|||||||
|
# This template creates a cloud-init network configuration,
|
||||||
|
# based upon these input values:
|
||||||
|
#
|
||||||
|
# .Node: the Node from a ViNO CR
|
||||||
|
# .Networks: the list of Networks from a ViNO CR
|
||||||
|
# .Generated: host-specific info generated/calculated by ViNO itself
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: test-template
|
||||||
|
namespace: default
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
template: |
|
||||||
|
{{ $netToIface := dict }}
|
||||||
|
links:
|
||||||
|
{{- range .Node.NetworkInterfaces }}
|
||||||
|
- id: {{ .Name }}
|
||||||
|
name: {{ .Name }}
|
||||||
|
type: {{ .Type }}
|
||||||
|
mtu: {{ .MTU }}
|
||||||
|
ethernet_mac_address: {{ index $.Generated.MACAddresses .Name }}
|
||||||
|
{{- if .Options -}}
|
||||||
|
{{ range $key, $val := .Options }}
|
||||||
|
{{ $key }}: {{ $val }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- /* Save the network->interface mapping, needed below */ -}}
|
||||||
|
{{- $_ := set $netToIface .NetworkName .Name }}
|
||||||
|
{{- end }}
|
||||||
|
networks:
|
||||||
|
{{- range .Networks }}
|
||||||
|
- id: {{ .Name }}
|
||||||
|
type: {{ .Type }}
|
||||||
|
link: {{ index $netToIface .Name }}
|
||||||
|
ip_address: {{ index $.Generated.IPAddresses .Name }}
|
||||||
|
#netmask: "TODO - see if needed when ip has CIDR range"
|
||||||
|
dns_nameservers: {{ .DNSServers }}
|
||||||
|
{{- if .Routes }}
|
||||||
|
routes:
|
||||||
|
{{- range .Routes }}
|
||||||
|
- network: {{ .Network }}
|
||||||
|
{{ if .Netmask }}netmask: {{ .Netmask }}{{ end }}
|
||||||
|
gateway: {{ .Gateway }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
#services:
|
||||||
|
# TODO: confirm dns_nameservers above does the trick here
|
||||||
|
|
62
manifests/function/workload-config/vino-cr.yaml
Normal file
62
manifests/function/workload-config/vino-cr.yaml
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
apiVersion: airship.airshipit.org/v1
|
||||||
|
kind: Vino
|
||||||
|
metadata:
|
||||||
|
name: vino-test-cr
|
||||||
|
# labels: ...
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
matchLabels:
|
||||||
|
beta.kubernetes.io/os: linux
|
||||||
|
configuration:
|
||||||
|
cpuExclude: 0-4,54-60
|
||||||
|
redfishCredentialSecret:
|
||||||
|
name: redfishSecret
|
||||||
|
networks:
|
||||||
|
- name: management
|
||||||
|
subnet: 192.168.2.0/20
|
||||||
|
type: ipv4
|
||||||
|
allocationStart: 192.168.2.10
|
||||||
|
allocationStop: 192.168.2.14 # docs should specify that the range should = number of vms (to permit future expansion over multiple vino crs etc)
|
||||||
|
routes:
|
||||||
|
- network: 10.0.0.0
|
||||||
|
netmask: 255.255.255.0
|
||||||
|
gateway: $vino.nodebridgegw # vino will need to populate this from the nodelabel value `airshipit.org/vino.nodebridgegw`
|
||||||
|
dns_servers: ["135.188.34.124"]
|
||||||
|
- name: external
|
||||||
|
subnet: 169.0.0.0/24
|
||||||
|
type: ipv4
|
||||||
|
routes:
|
||||||
|
- network: 0.0.0.0
|
||||||
|
netmask: 0.0.0.0
|
||||||
|
gateway: 169.0.0.1
|
||||||
|
allocationStart: 169.0.0.10
|
||||||
|
allocationStop: 169.0.0.254
|
||||||
|
|
||||||
|
vmBridge: lo
|
||||||
|
nodes:
|
||||||
|
- name: "worker"
|
||||||
|
count: 3
|
||||||
|
networkDataTemplate:
|
||||||
|
name: "test-template"
|
||||||
|
namespace: "default"
|
||||||
|
networkInterfaces:
|
||||||
|
- name: management
|
||||||
|
type: bridge
|
||||||
|
network: management
|
||||||
|
mtu: 1500
|
||||||
|
options:
|
||||||
|
bridgeName: vminfra-bridge
|
||||||
|
- name: external
|
||||||
|
type: sriov-bond
|
||||||
|
network: external
|
||||||
|
mtu: 9100
|
||||||
|
options:
|
||||||
|
# this is an 'open-ended' set of k/v pairs, validation is perfomed by vino rather than crd schema.
|
||||||
|
pf: "[enp29s0f0,enp219s1f1]"
|
||||||
|
vlan: "100"
|
||||||
|
bond_mode: 802.3ad
|
||||||
|
bond_xmit_hash_policy: layer3+4
|
||||||
|
bond_miimon: "100"
|
||||||
|
bmcCredentials:
|
||||||
|
username: "admin"
|
||||||
|
password: "passw0rd"
|
@ -0,0 +1,2 @@
|
|||||||
|
resources:
|
||||||
|
- ../../../../type/multi-tenant/target/workload-config
|
@ -1,5 +1,6 @@
|
|||||||
resources:
|
resources:
|
||||||
- ../../airship-core/phases
|
- ../../airship-core/phases
|
||||||
- ../sub-clusters/wordpress/phases
|
- ../sub-clusters/wordpress/phases
|
||||||
|
- workload-config.yaml
|
||||||
patchesStrategicMerge:
|
patchesStrategicMerge:
|
||||||
- cluster_map_patch.yaml
|
- cluster_map_patch.yaml
|
||||||
|
11
manifests/type/multi-tenant/phases/workload-config.yaml
Normal file
11
manifests/type/multi-tenant/phases/workload-config.yaml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: airshipit.org/v1alpha1
|
||||||
|
kind: Phase
|
||||||
|
metadata:
|
||||||
|
name: workload-config
|
||||||
|
clusterName: target-cluster
|
||||||
|
config:
|
||||||
|
executorRef:
|
||||||
|
apiVersion: airshipit.org/v1alpha1
|
||||||
|
kind: KubernetesApply
|
||||||
|
name: kubernetes-apply
|
||||||
|
documentEntryPoint: target/workload-config
|
@ -0,0 +1,2 @@
|
|||||||
|
resources:
|
||||||
|
- ../../../../function/workload-config
|
Loading…
x
Reference in New Issue
Block a user