@@ -25,6 +25,7 @@ const (
2525type AppArmor struct {
2626 k8sClient * client.K8sClient
2727 sshClient * client.SSHClient
28+ useInternalIP bool
2829}
2930
3031// NewAppArmor returns a new AppArmor object
@@ -57,9 +58,14 @@ func NewAppArmor() (*AppArmor, error) {
5758 return & AppArmor {
5859 k8sClient : k8s ,
5960 sshClient : ssh ,
61+ useInternalIP : false ,
6062 }, nil
6163}
6264
65+ func (aa * AppArmor ) UseInternalIP (useInternalIP bool ) {
66+ aa .useInternalIP = useInternalIP
67+ }
68+
6369// InstallCRD installs CRD in Kubernetes
6470func (aa * AppArmor ) InstallCRD () error {
6571 return aa .k8sClient .InstallCRD ()
@@ -88,7 +94,12 @@ func (aa *AppArmor) install(node *types.Node) error {
8894 return nil
8995 }
9096
91- err := aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
97+ var err error
98+ if aa .useInternalIP {
99+ err = aa .sshClient .Connect (node .InternalIP , SSH_PORT )
100+ } else {
101+ err = aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
102+ }
92103
93104 if err != nil {
94105 return err
@@ -97,7 +108,11 @@ func (aa *AppArmor) install(node *types.Node) error {
97108 defer aa .sshClient .Close ()
98109
99110 if aa .enabledInConnection (node ) {
100- klog .Infof ("AppArmor was enabled on node: %s (external IP: %s)" , node .NodeName , node .ExternalIP )
111+ if aa .useInternalIP {
112+ klog .Infof ("AppArmor was enabled on node: %s (internal IP: %s)" , node .NodeName , node .InternalIP )
113+ } else {
114+ klog .Infof ("AppArmor was enabled on node: %s (external IP: %s)" , node .NodeName , node .ExternalIP )
115+ }
101116 return nil
102117 }
103118
@@ -141,15 +156,25 @@ func (aa *AppArmor) syncProfile(node *types.Node, profile types.AppArmorProfile)
141156 return nil
142157 }
143158
144- err := aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
159+ var err error
160+ if aa .useInternalIP {
161+ err = aa .sshClient .Connect (node .InternalIP , SSH_PORT )
162+ } else {
163+ err = aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
164+ }
165+
145166 if err != nil {
146167 return err
147168 }
148169
149170 defer aa .sshClient .Close ()
150171
151172 if ! aa .enabledInConnection (node ) {
152- klog .Infof ("AppArmor was not enabled on node: %s (external IP: %s), no sync happen." , node .NodeName , node .ExternalIP )
173+ if aa .useInternalIP {
174+ klog .Infof ("AppArmor was not enabled on node: %s (internal IP: %s), no sync happen." , node .NodeName , node .InternalIP )
175+ } else {
176+ klog .Infof ("AppArmor was not enabled on node: %s (external IP: %s), no sync happen." , node .NodeName , node .ExternalIP )
177+ }
153178 return nil
154179 }
155180
@@ -196,7 +221,12 @@ func (aa *AppArmor) enabled(node *types.Node) (bool, error) {
196221 return false , nil
197222 }
198223
199- err := aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
224+ var err error
225+ if aa .useInternalIP {
226+ err = aa .sshClient .Connect (node .InternalIP , SSH_PORT )
227+ } else {
228+ err = aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
229+ }
200230 if err != nil {
201231 return false , err
202232 }
@@ -249,7 +279,12 @@ func (aa *AppArmor) status(node *types.Node) error {
249279 return nil
250280 }
251281
252- err := aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
282+ var err error
283+ if aa .useInternalIP {
284+ err = aa .sshClient .Connect (node .InternalIP , SSH_PORT )
285+ } else {
286+ err = aa .sshClient .Connect (node .ExternalIP , SSH_PORT )
287+ }
253288 if err != nil {
254289 return err
255290 }
0 commit comments