This repository has been archived by the owner on Apr 7, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 50
/
types_infrastructure.go
118 lines (102 loc) · 3.8 KB
/
types_infrastructure.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package openstack
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// InfrastructureConfig infrastructure configuration resource
type InfrastructureConfig struct {
metav1.TypeMeta
// FloatingPoolName contains the FloatingPoolName name in which LoadBalancer FIPs should be created.
FloatingPoolName string
// Networks is the OpenStack specific network configuration
Networks Networks
}
// Networks holds information about the Kubernetes and infrastructure networks.
type Networks struct {
// Router indicates whether to use an existing router or create a new one.
Router *Router
// Worker is a CIDRs of a worker subnet (private) to create (used for the VMs).
// Deprecated - use `workers` instead.
Worker string
// Workers is a CIDRs of a worker subnet (private) to create (used for the VMs).
Workers string
}
// Router indicates whether to use an existing router or create a new one.
type Router struct {
// ID is the router id of an existing OpenStack router.
ID string
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// InfrastructureStatus contains information about created infrastructure resources.
type InfrastructureStatus struct {
metav1.TypeMeta
// Networks contains information about the created Networks and some related resources.
Networks NetworkStatus
// Node contains information about Node related resources.
Node NodeStatus
// SecurityGroups is a list of security groups that have been created.
SecurityGroups []SecurityGroup
}
// NodeStatus contains information about Node related resources.
type NodeStatus struct {
// KeyName is the name of the SSH key.
KeyName string
}
// NetworkStatus contains information about a generated Network or resources created in an existing Network.
type NetworkStatus struct {
// ID is the Network id.
ID string
// FloatingPool contains information about the floating pool.
FloatingPool FloatingPoolStatus
// Router contains information about the Router and related resources.
Router RouterStatus
// Subnets is a list of subnets that have been created.
Subnets []Subnet
}
// RouterStatus contains information about a generated Router or resources attached to an existing Router.
type RouterStatus struct {
// ID is the Router id.
ID string
}
// FloatingPoolStatus contains information about the floating pool.
type FloatingPoolStatus struct {
// ID is the floating pool id.
ID string
// Name is the floating pool name.
Name string
}
// Purpose is a purpose of resources.
type Purpose string
const (
// PurposeNodes is a Purpose for node resources.
PurposeNodes Purpose = "nodes"
)
// Subnet is an OpenStack subnet related to a Network.
type Subnet struct {
// Purpose is a logical description of the subnet.
Purpose Purpose
// ID is the subnet id.
ID string
}
// SecurityGroup is an OpenStack security group related to a Network.
type SecurityGroup struct {
// Purpose is a logical description of the security group.
Purpose Purpose
// ID is the security group id.
ID string
// Name is the security group name.
Name string
}