This repository has been archived by the owner on Oct 20, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 33
/
nifiuser_types.go
90 lines (74 loc) · 2.9 KB
/
nifiuser_types.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
/*
Copyright 2020.
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 v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
// NifiUserSpec defines the desired state of NifiUser
type NifiUserSpec struct {
// identity field is used to define the user identity on NiFi cluster side, when the user's name doesn't
// suit with Kubernetes resource name.
Identity string `json:"identity,omitempty"`
// Name of the secret where all cert resources will be stored
SecretName string `json:"secretName,omitempty"`
// contains the reference to the NifiCluster with the one the user is linked
ClusterRef ClusterReference `json:"clusterRef"`
// List of DNSNames that the user will used to request the NifiCluster (allowing to create the right certificates associated)
DNSNames []string `json:"dnsNames,omitempty"`
// Whether or not the the operator also include a Java keystore format (JKS) with you secret
IncludeJKS bool `json:"includeJKS,omitempty"`
// Whether or not a certificate will be created for this user.
CreateCert *bool `json:"createCert,omitempty"`
// accessPolicies defines the list of access policies that will be granted to the group.
AccessPolicies []AccessPolicy `json:"accessPolicies,omitempty"`
}
// NifiUserStatus defines the observed state of NifiUser
type NifiUserStatus struct {
// The nifi user's node id
Id string `json:"id"`
// The last nifi user's node revision version catched
Version int64 `json:"version"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// NifiUser is the Schema for the nifiusers API
type NifiUser struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NifiUserSpec `json:"spec,omitempty"`
Status NifiUserStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// NifiUserList contains a list of NifiUser
type NifiUserList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NifiUser `json:"items"`
}
func init() {
SchemeBuilder.Register(&NifiUser{}, &NifiUserList{})
}
func (u *NifiUserSpec) GetCreateCert() bool {
if u.CreateCert != nil {
return *u.CreateCert
}
return true
}
func (u *NifiUser) GetIdentity() string {
if u.Spec.Identity == "" {
return u.Name
}
return u.Spec.Identity
}