Files
kubernetes/cluster/saltbase/salt/generate-cert/init.sls
Michael Faille ce7d5fe6e7 fix : openssl don't exist by default on CentOS docker image
To fix it, I just add openssl depedency on "generate-cert" state. It
should work on Debian-like and RedHat-Like systems. (and, Archlinux,
Opensuse, etc)

Fixed error :
$ sudo salt 'kubernetes-master' state.apply
----------
          ID: kubernetes-cert
    Function: cmd.script
      Result: False
     Comment: Command 'kubernetes-cert' run
     Started: 06:57:06.634203
    Duration: 208.719 ms
     Changes:
              ----------
              pid:
                  793
              retcode:
                  1
              stderr:
                  /tmpm24T3R.sh: line 22: openssl: command not found
                  chgrp: cannot access '/srv/kubernetes/server.key': No such file or directory
                  chgrp: cannot access '/srv/kubernetes/server.cert': No such file or directory
                  chmod: cannot access '/srv/kubernetes/server.key': No such file or directory
                  chmod: cannot access '/srv/kubernetes/server.cert': No such file or directory
              stdout:

After applying my patch (success) :
----------
          ID: kubernetes-cert
    Function: cmd.script
      Result: True
     Comment: Command 'kubernetes-cert' run
     Started: 07:17:04.172384
    Duration: 1041.092 ms
     Changes:
              ----------
              pid:
                  1045
              retcode:
                  0
              stderr:
                  Generating a 4096 bit RSA private key
                  ......................................................................++
                  ...............................................................................++
                  writing new private key to '/srv/kubernetes/server.key'
                  -----
              stdout:
----------
2016-01-24 02:18:11 -05:00

46 lines
1.1 KiB
Plaintext

{% set master_extra_sans=grains.get('master_extra_sans', '') %}
{% if grains.cloud is defined %}
{% if grains.cloud == 'gce' %}
{% set cert_ip='_use_gce_external_ip_' %}
{% endif %}
{% if grains.cloud == 'aws' %}
{% set cert_ip='_use_aws_external_ip_' %}
{% endif %}
{% if grains.cloud == 'vsphere' %}
{% set cert_ip=grains.ip_interfaces.eth0[0] %}
{% endif %}
{% endif %}
# If there is a pillar defined, override any defaults.
{% if pillar['cert_ip'] is defined %}
{% set cert_ip=pillar['cert_ip'] %}
{% endif %}
{% set certgen="make-cert.sh" %}
{% if cert_ip is defined %}
{% set certgen="make-ca-cert.sh" %}
{% endif %}
openssl:
pkg.installed: []
kube-cert:
group.present:
- system: True
kubernetes-cert:
cmd.script:
- unless: test -f /srv/kubernetes/server.cert
- source: salt://generate-cert/{{certgen}}
{% if cert_ip is defined %}
- args: {{cert_ip}} {{master_extra_sans}}
- require:
- pkg: curl
{% endif %}
- cwd: /
- user: root
- group: root
- shell: /bin/bash
- require:
- pkg: openssl